统计
本章描述了本库中的统计函数。基本统计函数包括计算均值、方差和标准偏差的例程。更高级的函数允许您计算绝对偏差、偏度、峰度以及中位数和任意百分位数。算法使用递归关系以稳定的方式计算平均值,而不会有可能溢出的大中间值。
这些函数对不同数据集有标准浮点和整数类型两种版本。双精度浮点数据的版本具有gsl_stats前缀,并在头文件gsl_statistics_double.h中声明。整数数据的版本前缀为gsl_stats_int,并在头文件gsl_statistics_int.h中声明。所有函数都对C数组进行操作,并使用stride参数指定元素之间的间距。
21.1 均值,标准差和方差
double gsl_stats_mean(const double data[], size_t stride, size_t n)
本函数返回长度为n的数据集的算术平均值。算术平均值,即样本平均值,用μ表示,定义为:
其中xi是数据集data的元素。对于从高斯分布中抽取的样本,μ的方差是σ2/N。
double gsl_stats_variance(const double data[], size_t stride, size_t n)
本函数返回长度为n的数据集data的估计方差或样本方差,数据集步长是stride。估计方差表示为σ2,定义为:
其中xi是数据集data的元素。注意1/(N−1)的归一化因子来自于σ2作为总体方差σ2的无偏估计量的推导。对于从高斯分布中抽取的样本,σ2本身的方差是2σ4/N。
本函数通过调用gsl_stats_mean()来计算平均值。如果已经计算了平均值,那么可以直接将其传递给gsl_stats_variance_m()。
double gsl_stats_variance_m(const double data[], size_t stride, size_t n,
double mean)
本函数返回data相对于给定均值mean的样本方差。函数用μ计算,并用提供的mean值代替
double gsl_stats_sd(const double data[], size_t stride, size_t n)
double gsl_stats_sd_m(const double data[], size_t stride, size_t n, double mean)
标准差被定义为方差的平方根。这些函数返回上述相应方差函数的平方根。
double gsl_stats_tss(const double data[], size_t stride, size_t n)