Computes the first four moments (average, sample variance, skewness, and kurtosis) of the rightmost dimension for all other dimensions.
function dim_stat4 ( x : numeric ) return_val : float or double
A variable of numeric type and any dimensionality.
The output will be double if x is double, and float otherwise.
The output dimensionality is 4 x the first n-2 dimensions of the input. The average is at (0,"n-2"), sample variance (1,"n-2"), skewness (2,"n-2") and kurtosis (3,"n-2"). (See examples below.)
The dim_stat4 function computes the first four moments (average, sample variance, skewness, and kurtosis) of all elements of the n-1 (rightmost) dimension for each index of the dimensions 0...n-2. Missing values are ignored.
Use dim_stat4_n if you want to specify on which dimension(s) to calculate the four moments.
This function was updated in V5.0.0 so that if a subarray of x contains all missing values, dim_stat4 will return missing values in the appropriate locations rather than quitting with a fatal error.
The skewness (third moment) is a measure departure from symmetry. If skew>0 [skew<0], the distribution trails off to the right [left].
The coefficient of kurtosis (fourth moment) measures normality. The normal distribution has a kurtosis of 3. This value is subtracted from the calculated kurtosis. Thus, negative values are possible and the returned value is kurtosis relative to the normal distribution. If kurtosis > 0 [<0], it is usually more sharply peaked [flatter] than the normal distribution (leptokurtic and platykurtic, respectively). E.g., a rectangular function has a kurtosis of -1.2 (=1.8-3) relative to the normal distribution.
The dim_num function can be used to determine the number of missing values. Eg:
Example 1: Let x be a 1-dimensional array. Then:
xstat = dim_stat4(x)will yield a one-dimensional array of length 4. xstat(0) contains the mean; xstat(1) = variance; xstat(2) = skewness; xstat(3) = kurtosis.
Let z be of size (ntim,nlat,mlon). Then, for each time and latitude, the the first four moments of each longitude (rightmost dimension) can be determined via:
zLon = dim_stat4( z ) ; ==> zLon(4,ntim,nlat)Example 3: Let x be a 4-dimensional array with named dimensions (time, lev, lat, lon) and dimension sizes (ntim, klev, nlat, mlon). To determine the four moments in time use NCL's dimension reordering:
Note: in V5.1.1, you will be able to use dim_stat4_n to avoid having to reorder your data.
xstat = dim_stat4(x(lev|:, lat|:, lon|:, time|:)) ; ==> (4,klev,nlat,mlon) xstat = dim_stat4_n(x,0) ; no reordering needed