运行统计
本章描述了计算数据运行统计(也称为在线统计)的例程。这些例程适用于处理大型数据集,对于这些数据集,一次性存储在内存中可能不方便或不实用。数据可以采用单遍算法一次处理一个点。每次将一个数据点添加到累加器时,都会更新内部参数,以计算当前的平均值、方差、标准差、偏度和峰度。这些统计数据是精确的,并通过数值稳定的单遍算法进行更新。中位数和任意分位数也可用,但是这些计算使用提供近似的算法,并随着向累加器添加更多数据而变得更精确。
本章描述的函数都声明在头文件gsl_rstat.h中。
22.1 初始化累加器
gsl_rstat_workspace
此工作空间包含用于计算各种统计信息的参数,并在将每个数据点添加到累加器后进行更新。
gsl_rstat_workspace * gsl_rstat_alloc(void)
本函数为计算运行统计信息分配一个工作空间。工作空间的大小为O(1)。
void gsl_rstat_free(gsl_rstat_workspace * w)
本函数释放工作空间w使用的内存空间。
int gsl_rstat_reset(gsl_rstat_workspace * w)
本函数重置工作空间w为初始状态,这样它可以用一套新的数据开始工作。
22.2 把数据加入到累加器
int gsl_rstat_add(const double x, gsl_rstat_workspace * w)
本函数将数据点x加到统计累加器中,更新均值、方差、标准差、偏度、峰度和中值的计算。
size_t gsl_rstat_n(const gsl_rstat_workspace * w)
本函数返回到目前为止加到累加器的数据数量。
22.3 当前统计值
double gsl_rstat_min(const gsl_rstat_workspace * w)
本函数返回加入到累加器中的最小值。
double gsl_rstat_max(const gsl_rstat_workspace * w)
本函数返回加入到累加器中的最大值。
double gsl_rstat_mean(const gsl_rstat_workspace * w)
本函数返回累加器中所有的数据的均值,定义如下,
double gsl_rstat_variance(const gsl_rstat_workspace * w)
本函数返回累加器中所有的数据的方差,定义如下,
double gsl_rstat_sd(const gsl_rstat_workspace * w)
本函数返回添加到累加器的所有数据的标准差,定义为上面给出的方差的平方根。
double gsl_rstat_sd_mean(const gsl_rstat_workspace * w)
本函数返回均值的标准差,定义为,
double gsl_rstat_rms(const gsl_rstat_workspace * w)
本函数返回添加到累加器的所有数据的均方根,定义为,
double gsl_rstat_skew(const gsl_rstat_workspace * w)
本函数返回添加到累加器的所有数据的偏度,定义为,
double gsl_rstat_kurtosis(const gsl_rstat_workspace * w)
本函数返回添加到累加器的所有数据的峰度,定义为,
double gsl_rstat_median(gsl_rstat_workspace * w)
本函数返回添加到累加器的数据中位数的估计值。