数据的统计描述
立即解锁
发布时间: 2025-08-21 02:03:54 阅读量: 1 订阅数: 6 


C语言中的数值计算艺术:科学计算必备指南
# 数据的统计描述
## 1. 引言
数据由数字组成,这些数字是输入到计算机而非由计算机产生的,我们应尊重数据,不能随意篡改,也不能对其进行不完全理解的数值处理。
数据分析不可避免地涉及统计学领域,其遵循以下范式:
- 对数据应用某些公式计算“统计量”。
- 计算该统计量的值在基于“零假设”计算出的概率分布中的位置。
- 如果该值落在分布的尾部等极不可能出现的位置,则得出零假设对于该数据集不成立的结论。
需要注意的是,若统计量落在分布的合理部分,不能错误地认为零假设被“验证”或“证明”,统计学只能证伪,不能证明。
数据的分析方法可分为与模型无关和与模型有关两类。与模型无关的包括描述性统计(如均值、方差等)以及用于判断两个或多个数据集是否相同、测量两个数据集相关性的统计检验。
## 2. 分布的矩:均值、方差、偏度等
### 2.1 均值
当一组值有较强的集中趋势时,用与矩相关的几个数字来描述这组值是有用的。最常见的是均值,对于值 $x_1, \cdots, x_N$,其均值 $\bar{x}$ 定义为:
$\bar{x} = \frac{1}{N} \sum_{j=1}^{N} x_j$
均值是对集中值的估计,但它不是唯一的估计量,也不一定是最好的。对于尾部很宽的概率分布,随着采样点数量的增加,均值可能收敛性很差甚至不收敛。
### 2.2 方差和标准差
描述分布围绕中心值的“宽度”或“变异性”,常用的是方差:
$Var(x_1 \cdots x_N) = \frac{1}{N - 1} \sum_{j=1}^{N} (x_j - \bar{x})^2$
方差的平方根是标准差:
$\sigma(x_1 \cdots x_N) = \sqrt{Var(x_1 \cdots x_N)}$
方差估计的是 $x$ 与其均值的均方偏差。分母为 $N - 1$ 而非 $N$ 有其原因,若已知分布的均值 $\bar{x}$ 而非从数据中估计得到,分母应改为 $N$。
在实际中,有些分布的二阶矩不存在(即无穷大),此时方差或标准差作为数据围绕中心值宽度的度量是无用的。更稳健的估计量是平均偏差或平均绝对偏差:
$ADev(x_1 \cdots x_N) = \frac{1}{N} \sum_{j=1}^{N} |x_j - \bar{x}|$
通常在上述公式中用样本中位数 $x_{med}$ 代替 $\bar{x}$,对于任何固定样本,中位数实际上使平均绝对偏差最小。
### 2.3 偏度和峰度
偏度用于刻画分布围绕均值的不对称程度,定义为:
$Skew(x_1 \cdots x_N) = \frac{1}{N} \sum_{j=1}^{N} \left[\frac{x_j - \bar{x}}{\sigma}\right]^3$
其中 $\sigma$ 是分布的标准差。正偏度表示分布的不对称尾部向更正值方向延伸,负偏度则向更负值方向延伸。
峰度是无量纲的量,用于衡量分布的相对峰度或平坦度,相对于正态分布而言。正峰度的分布称为尖峰分布,负峰度的分布称为平峰分布,介于两者之间的称为常峰分布。其定义为:
$Kurt(x_1 \cdots x_N) = \left\{\frac{1}{N} \sum_{j=1}^{N} \left[\frac{x_j - \bar{x}}{\sigma}\right]^4\right\} - 3$
对于正态分布,峰度值为 0。
计算这些量可以使用以下代码:
```c
#include <math.h>
void moment(float data[], int n, float *ave, float *adev, float *sdev,
float *var, float *skew, float *curt)
{
void nrerror(char error_text[]);
int j;
float ep=0.0,s,p;
if (n <= 1) nrerror("n must be at least 2 in moment");
s=0.0;
for (j=1;j<=n;j++) s += data[j];
*ave=s/n;
*adev=(*var)=(*skew)=(*curt)=0.0;
for (j=1;j<=n;j++) {
*adev += fabs(s=data[j]-(*ave));
ep += s;
*var += (p=s*s);
*skew += (p *= s);
*curt += (p *= s);
}
*adev /= n;
*var=(*var-ep*ep/n)/(n-1);
*sdev=sqrt(*var);
if (*var) {
*skew /= (n*(*var)*(*sdev));
*curt=(*curt)/(n*(*var)*(*var))-3.0;
} else nrerror("No skew/kurtosis when variance = 0 (in moment)");
}
```
### 2.4 半不变量
独立随机变量的均值和方差是可加的,即若 $x$ 和 $y$ 分别独立地从两个可能不同的概率分布中抽取,则有:
$E(x + y) = E(x) + E(y)$
$Var(x + y) = Var(x) + Var(y)$
高阶矩一般不可加,但某些组合(半不变量)是可加的。若分布的中心矩记为 $M_k$:
$M_k \equiv E[(x_i - \bar{x})^k]$
则前几个半不变量 $I_k$ 为:
| 半不变量 | 表达式 |
| ---- | ---- |
| $I_2$ | $M_2$ |
| $I_3$ | $M_3$ |
| $I_4$ | $M_4 - 3M_2^2$ |
| $I_5$ | $M_5 - 10M_2M_3$ |
| $I_6$ | $M_6 - 15M_2M_4 - 10M_3^2 + 30M_2^3$ |
偏度和峰度与半不变量的关系为:
$Skew(x) = \frac{I_3}{I_2^{3/2}}$
$Kurt(x) = \frac{I_4}{I_2^2}$
高斯分布所有高于 $I_2$ 的半不变量都为零,泊松分布的所有半不变量都等于其均值。
### 2.5 中位数和众数
中位数是概率分布函数 $p(x)$ 中使 $x$ 取较大和较小值的概率相等的值,即:
$\int_{-\infty}^{x
0
0
复制全文
相关推荐








