The IMSL_SIMPLESTAT function computes basic univariate statistics.
This routine requires an IDL Advanced Math and Stats license. For more information, contact your sales or technical support representative.
The IMSL_SIMPLESTAT function computes the sample mean, variance, minimum, maximum, and other basic statistics for the data in x. It also computes confidence intervals for the mean and variance (under the hypothesis that the sample is from a normal population).
Frequencies, fi’s, are interpreted as multiple occurrences of the other values in the observations. In other words, a row of x with a frequency variable having a value of 2 has the same effect as two rows with frequencies of 1. The total of the frequencies is used in computing all the statistics based on moments (mean, variance, skewness, and kurtosis). Weights, wi’s, are not viewed as replication factors. The sum of the weights central moments). Both weights and frequencies can be zero, but neither can be negative. In general, a zero frequency means that the row is to be eliminated from the analysis; no further processing or error checking is done on the row. A weight of zero results in the row being counted, and updates are made of the statistics.
The definitions of some of the statistics are given below in terms of a single variable x of which the i-th datum is xi.
Mean
Variance
Skewness
Excess or Kurtosis
Minimum
xmin = min(xi)
Maximum
xmax = max(xi)
Range
xmax – xmin
Coefficient of Variation
Median
Median Absolute Deviation
Simple Robust Estimate of Scale
where
is the inverse of the standard normal distribution function evaluated at 3/4. This standardizes MAD in order to make the scale estimate consistent at the normal distribution for estimating the standard deviation (Huber 1981, pp. 107–108).
Example
This example uses data from Draper and Smith (1981). There are five variables and 13 observations.
x = IMSL_STATDATA(5)
stats = IMSL_SIMPLESTAT(x)
labels = ['means', 'variances', 'std. dev', $
'skewness', 'kurtosis', 'minima', $
'maxima', 'ranges', 'C.V.', 'counts', $
'lower mean', 'upper mean', 'lower var', 'upper var']
FOR i = 0, 13 DO PM, labels(i), stats(i, *), $
FORMAT = '(a10, 5f9.3)'
means 7.462 48.154 11.769 30.000 95.423
variances 34.603 242.141 41.026 280.167 226.314
std. dev 5.882 15.561 6.405 16.738 15.044
skewness 0.688 -0.047 0.611 0.330 -0.195
kurtosis 0.075 -1.323 -1.079 -1.014 -1.342
maxima 21.000 71.000 23.000 60.000 115.900
ranges 20.000 45.000 19.000 54.000 43.400
C.V. 0.788 0.323 0.544 0.558 0.158
counts 13.000 13.000 13.000 3.000 13.000
lower mean 3.907 38.750 7.899 19.885 86.332
upper mean 11.016 57.557 15.640 40.115 104.514
lower var 17.793 124.512 21.096 144.065 116.373
upper var 94.289 659.817 111.792 763.434 616.688
Syntax
Result = IMSL_SIMPLESTAT(X)
Return Value
A two-dimensional matrix containing some simple statistics for each variable X. If Median and Median_And_Scale are not used as keywords, then element (i, j) of the returned matrix contains the i-th statistic of the j-th variable. Refer to the table below for a list of results.
i
|
Statistic Returned in Element (i, *)
|
0 |
Mean |
1 |
Variance |
2 |
Standard deviation
|
3 |
Coefficient of skewness
|
4 |
Coefficient of excess (kurtosis)
|
5 |
Minimum value |
6 |
Maximum value |
7 |
Range |
8 |
Coefficient of variation (when defined). If the coefficient of variation is not defined, zero is returned.
|
9 |
Number of observations (the counts)
|
10 |
Lower confidence limit for the mean (assuming normality). The default is a 95-percent confidence interval.
|
11 |
Upper confidence limit for the mean (assuming normality)
|
12 |
Lower confidence limit for the variance (assuming normality). The default is a 95-percent confidence interval.
|
13 |
Upper confidence limit for the variance (assuming normality)
|
Arguments
X
Data matrix. The data value for the i-th observation of the j-th variable should be in the matrix element (i, j).
Keywords
CONF_MEANS (optional)
Scalar specifying the confidence level for a two-sided interval estimate of the means (assuming normality) in percent. The CONF_MEANS keyword must be between 0.0 and 100.0 and is often 90.0, 95.0, or 99.0. For a one-sided confidence interval with confidence level c, set CONF_MEANS = 100.0 – 2.0(100.0 – c) (at least 50 percent). Default: 95-percent confidence interval is computed
CONF_VARIANCES (optional)
Confidence level for a two-sided interval estimate of the variances (assuming normality) in percent. The confidence intervals are symmetric in probability (rather than in length). For one-sided confidence interval with confidence level c, set CONF_MEANS = 100.0 – 2.0(100.0 – c) (at least 50 percent). Default: 95-percent confidence interval is computed.
DOUBLE (optional)
If present and nonzero, double precision is used.
ELEMENTWISE (optional)
If present and nonzero, all nonmissing data for any variable is used in computing the statistics for that variable. Default action: if an observation (row of x) contains a missing value, the observation is excluded from computations for all variables. In either case, if weights and/or frequencies are specified and the value of the weight and/or frequency is missing, the observation is excluded from computations for all variables.
FREQUENCIES (optional)
One-dimensional array containing the frequency for each observation. Default: each observation has a frequency of 1.
MEDIAN_ONLY (optional)
If present and nonzero, medians are computed and stored in elements (14, *) of the returned matrix of simple statistics. The MEDIAN_ONLY and MEDIAN_AND_SCALE keywords cannot be used together.
MEDIAN_AND_SCALE (optional)
If present and nonzero, specified, the medians, the medians of the absolute deviations from the medians, and a simple robust estimate of scale are computed and stored in elements (14, *), (15, *), and (16, *) of the returned matrix of simple statistics. The MEDIAN_ONLY and MEDIAN_AND_SCALE keywords cannot be used together.
WEIGHTS (optional)
One-dimensional array containing the weight for each observation. Default: each observation has a weight of 1.
Version History