Module rgsl::statistics [] [src]

Statistics

This chapter describes the statistical functions in the library. The basic statistical functions include routines to compute the mean, variance and standard deviation. More advanced functions allow you to calculate absolute deviations, skewness, and kurtosis as well as the median and arbitrary percentiles. The algorithms use recurrence relations to compute average quantities in a stable way, without large intermediate values that might overflow.

Weighted Samples

The functions described in this section allow the computation of statistics for weighted samples. The functions accept an array of samples, x_i, with associated weights, w_i. Each sample x_i is considered as having been drawn from a Gaussian distribution with variance \sigma_i2. The sample weight w_i is defined as the reciprocal of this variance, w_i = 1/\sigma_i2. Setting a weight to zero corresponds to removing a sample from a dataset.

Maximum and Minimum values

The following functions find the maximum and minimum values of a dataset (or their indices). If the data contains NaNs then a NaN will be returned, since the maximum or minimum value is undefined. For functions which return an index, the location of the first NaN in the array is returned.

Median and Percentiles

The median and percentile functions described in this section operate on sorted data. For convenience we use quantiles, measured on a scale of 0 to 1, instead of percentiles (which use a scale of 0 to 100).

References and Further Reading

The standard reference for almost any topic in statistics is the multi-volume Advanced Theory of Statistics by Kendall and Stuart.

Maurice Kendall, Alan Stuart, and J. Keith Ord. The Advanced Theory of Statistics (multiple volumes) reprinted as Kendall’s Advanced Theory of Statistics. Wiley, ISBN 047023380X. Many statistical concepts can be more easily understood by a Bayesian approach. The following book by Gelman, Carlin, Stern and Rubin gives a comprehensive coverage of the subject.

Andrew Gelman, John B. Carlin, Hal S. Stern, Donald B. Rubin. Bayesian Data Analysis. Chapman & Hall, ISBN 0412039915. For physicists the Particle Data Group provides useful reviews of Probability and Statistics in the “Mathematical Tools” section of its Annual Review of Particle Physics.

Review of Particle Properties R.M. Barnett et al., Physical Review D54, 1 (1996) The Review of Particle Physics is available online at the website http://pdg.lbl.gov/.

Functions

absdev

This function computes the absolute deviation from the mean of data, a dataset of length n with stride stride. The absolute deviation from the mean is defined as,

absdev_m

This function computes the absolute deviation of the dataset data relative to the given value of mean,

correlation

This function efficiently computes the Pearson correlation coefficient between the datasets data1 and data2 which must both be of the same length n.

covariance

This function computes the covariance of the datasets data1 and data2 which must both be of the same length n.

covariance_m

This function computes the covariance of the datasets data1 and data2 using the given values of the means, mean1 and mean2. This is useful if you have already computed the means of data1 and data2 and want to avoid recomputing them.

kurtosis

This function computes the kurtosis of data, a dataset of length n with stride stride. The kurtosis is defined as,

kurtosis_m_sd

This function computes the kurtosis of the dataset data using the given values of the mean mean and standard deviation sd,

lag1_autocorrelation

This function computes the lag-1 autocorrelation of the dataset data.

lag1_autocorrelation_m

This function computes the lag-1 autocorrelation of the dataset data using the given value of the mean mean.

max

This function returns the maximum value in data, a dataset of length n with stride stride. The maximum value is defined as the value of the element x_i which satisfies x_i >= x_j for all j.

max_index

This function returns the index of the maximum value in data, a dataset of length n with stride stride. The maximum value is defined as the value of the element x_i which satisfies x_i >= x_j for all j. When there are several equal maximum elements then the first one is chosen.

mean

This function returns the arithmetic mean of data, a dataset of length n with stride stride. The arithmetic mean, or sample mean, is denoted by \Hat\mu and defined as,

median_from_sorted_data

This function returns the median value of sorted_data, a dataset of length n with stride stride. The elements of the array must be in ascending numerical order. There are no checks to see whether the data are sorted, so the function gsl_sort should always be used first.

min

This function returns the minimum value in data, a dataset of length n with stride stride. The minimum value is defined as the value of the element x_i which satisfies x_i <= x_j for all j.

min_index

This function returns the index of the minimum value in data, a dataset of length n with stride stride. The minimum value is defined as the value of the element x_i which satisfies x_i >= x_j for all j. When there are several equal minimum elements then the first one is chosen.

minmax

This function finds both the minimum and maximum values min, max in data in a single pass.

minmax_index

This function returns the indexes min_index, max_index of the minimum and maximum values in data in a single pass.

quantile_from_sorted_data

This function returns a quantile value of sorted_data, a double-precision array of length n with stride stride. The elements of the array must be in ascending numerical order. The quantile is determined by the f, a fraction between 0 and 1. For example, to compute the value of the 75th percentile f should have the value 0.75.

sd

The standard deviation is defined as the square root of the variance. This function returns the square root of the corresponding variance functions above.

sd_m

The standard deviation is defined as the square root of the variance. This function returns the square root of the corresponding variance functions above.

sd_with_fixed_mean

This function calculates the standard deviation of data for a fixed population mean mean. The result is the square root of the corresponding variance function.

skew

This function computes the skewness of data, a dataset of length n with stride stride. The skewness is defined as,

skew_m_sd

This function computes the skewness of the dataset data using the given values of the mean mean and standard deviation sd,

spearman

This function computes the Spearman rank correlation coefficient between the datasets data1 and data2 which must both be of the same length n. Additional workspace of size 2*n is required in work. The Spearman rank correlation between vectors x and y is equivalent to the Pearson correlation between the ranked vectors x_R and y_R, where ranks are defined to be the average of the positions of an element in the ascending order of the values.

tss

This function returns the total sum of squares (TSS) of data about the mean. For gsl_stats_tss_m the user-supplied value of mean is used, and for gsl_stats_tss it is computed using gsl_stats_mean.

tss_m

This function returns the total sum of squares (TSS) of data about the mean. For gsl_stats_tss_m the user-supplied value of mean is used, and for gsl_stats_tss it is computed using gsl_stats_mean.

variance

This function returns the estimated, or sample, variance of data, a dataset of length n with stride stride. The estimated variance is denoted by \Hat\sigma2 and is defined by,

variance_m

This function returns the sample variance of data relative to the given value of mean. The function is computed with \Hat\mu replaced by the value of mean that you supply,

variance_with_fixed_mean

This function computes an unbiased estimate of the variance of data when the population mean mean of the underlying distribution is known a priori. In this case the estimator for the variance uses the factor 1/N and the sample mean \Hat\mu is replaced by the known population mean \mu,

wabsdev

This function computes the weighted absolute deviation from the weighted mean of data. The absolute deviation from the mean is defined as,

wabsdev_m

This function computes the absolute deviation of the weighted dataset data about the given weighted mean wmean.

wkurtosis

This function computes the weighted kurtosis of the dataset data.

wkurtosis_m_sd

This function computes the weighted kurtosis of the dataset data using the given values of the weighted mean and weighted standard deviation, wmean and wsd.

wmean

This function returns the weighted mean of the dataset data with stride stride and length n, using the set of weights w with stride wstride and length n. The weighted mean is defined as,

wsd

The standard deviation is defined as the square root of the variance. This function returns the square root of the corresponding variance function gsl_stats_wvariance above.

wsd_m

This function returns the square root of the corresponding variance function gsl_stats_wvariance_m above.

wsd_with_fixed_mean

The standard deviation is defined as the square root of the variance. This function returns the square root of the corresponding variance function above.

wskew

This function computes the weighted skewness of the dataset data.

wskew_m_sd

This function computes the weighted skewness of the dataset data using the given values of the weighted mean and weighted standard deviation, wmean and wsd.

wtss

This function returns the weighted total sum of squares (TSS) of data about the weighted mean. For gsl_stats_wtss_m the user-supplied value of wmean is used, and for gsl_stats_wtss it is computed using gsl_stats_wmean.

wtss_m

This function returns the weighted total sum of squares (TSS) of data about the weighted mean. For gsl_stats_wtss_m the user-supplied value of wmean is used, and for gsl_stats_wtss it is computed using gsl_stats_wmean.

wvariance

This function returns the estimated variance of the dataset data with stride stride and length n, using the set of weights w with stride wstride and length n. The estimated variance of a weighted dataset is calculated as,

wvariance_m

This function returns the estimated variance of the weighted dataset data using the given weighted mean wmean.

wvariance_with_fixed_mean

This function computes an unbiased estimate of the variance of the weighted dataset data when the population mean mean of the underlying distribution is known a priori. In this case the estimator for the variance replaces the sample mean \Hat\mu by the known population mean \mu,