9.1.1 统计量与常见统计分布
概率和统计是一对孪生兄弟,前者通过已知总体的所有相关参数信息,来计算特定事件发生的概率;后者则是在总体未知的情况下,通过采样观察样本状态来反推估计总体。因此,尽管概率论中也有随机变量和分布律,数理统计中的统计分布与其仍然存在较大差别。但数理统计中统计量和分布的概念仍然需要借助概率论中的工具来研究。
统计量和统计分布是数理统计学中的两个核心概念,它们在数据分析和推断中扮演着重要的角色。以下是对统计量和统计分布的进一步解释,以及常见的四种统计分布的简要介绍:
统计量
统计量是针对样本数据计算的数值,用于估计总体参数。构造统计量的原因包括:
- 总体不可知:在许多情况下,我们无法获得总体的全部信息,因此需要通过样本来估计总体参数。
- 简化问题:统计量可以将复杂的数据集简化为几个关键数值,便于分析和解释。
- 推断总体:通过样本统计量,我们可以对总体参数进行估计和推断。
统计分布
统计分布描述了样本观测值的分布情况。它可以通过频率分布直方图或概率密度函数来表示。统计分布的类型取决于样本数据的特性和所采用的统计方法。常见的统计分布包括下面四种:
正态分布
定义:
正态分布是最基本的统计分布之一。正态分布是一种概率分布,其特征为钟形曲线,且曲线关于均值对称。
正态分布的概率密度曲线:
三个主要性质:
1)集中性,即曲线的峰值位于均值处;
2)对称性,即曲线关于均值对称;
3)均匀变动性,即正态分布曲线以均值为中心,向两侧均匀展开。
卡方分布
定义:
性质:
1)随机变量取值范围为非负实数;
2)随着自由度的增加,卡方分布趋近于正态分布;
3)卡方分布具有可加性,即若随机变量相互独立,则它们的平方和服从卡方分布。常见统计量例如样本方差等都服从卡方分布。
应用和检验步骤:
卡方分布指出观察频数与期望频数之间差异显著性,和其他假设一样,这取决于显著性水平。
-
显性水平α进行检验(常用的显著性水平 0.05);
-
检测标准:卡方分布检验是单尾检验且是右尾,右尾被作为拒绝域。于是通过查看检验统计量是否位于右尾的拒绝域以内,来判定期望分布得出结果的可能性;
-
卡方概率表的使用;
-
分类变量的卡方检验。
假设检验步骤:
-
确定要进行检验的假设(H0)及其备择假设(H1)
-
求出期望 E 和自由度 n
-
确定用于做决策的拒绝域(右尾)
-
计算检验统计量
-
查看检验统计量是否在拒绝域内
-
做出决策
t分布
定义:
性质:
1)随着自由度的增加,t分布趋近于正态分布;
2)t分布具有可加性,即若随机变量相互独立,则它们的t值之和仍服从t分布;
3)对于不同的自由度,t分布的形状会发生变化,但总是关于其均值对称。自由度n越小,t分布曲线越低平;自由度 n 越大,t分布曲线越接近标准正态分布曲线,当自由度无限大时,t分布就成了正态分布。
应用:
t检验流程:
-
建立假设、确定检验水准α H0:μ = μ0 (零假设) H1:μ ≠ μ0(备择假设) 双侧检验,检验水准:α=0.05
-
计算检验统计量
-
查相应界值表,确定P值,下结论
ps:t检验适用于两个变量均数间的差异检验
t分布在统计学中有着广泛的应用,尤其是在小样本数据分析、方差分析、回归分析等领域。由于t分布对样本大小和方差的变化较为稳健,因此在实践中常常用来进行假设检验和置信区间的计算。同时,t分布也是构建其他统计量的基础,如Z分布、F分布等。
F分布
定义:
性质:
随着自由度的增加,F分布趋近于正态分布;
F分布具有可加性,即若两个随机变量相互独立,则它们的F值之和仍服从F分布;
对于不同的自由度,F分布的形状会发生变化,但总是关于其均值对称。
应用:
方差比例检验,方差分析、回归分析和方差齐性检验。
F分布在统计学中主要用于方差分析和回归分析等领域。在方差分析中,通过比较组间方差和组内方差,可以检验不同组之间的差异是否显著。在回归分析中,通过计算决定系数R²,可以评估模型对数据的拟合程度。
几种分布的概率密度曲线
正态分布、卡方分布、t分布和F分布四种分布的概率密度函数。
正态分布曲线呈现出钟形形状,且关于均值对称。曲线下的面积表示概率,总面积为1。均值影响曲线对称轴,均值越大则曲线越偏右,而若标准差越大曲线最高点则越低。
卡方分布曲线随着自由度的增加而逐渐趋近于正态分布。在自由度较小时,曲线呈现偏态特征,而在自由度较大时,曲线接近对称。随着自由度的增加,曲线的形状逐渐变得对称和稳定。
t分布曲线随着自由度的增加而逐渐趋近于正态分布。在自由度较小时,曲线呈现出更宽的尾部和更尖的峰部,表现出更强的离散性。随着自由度的增加,曲线的形状逐渐变得平滑,并接近正态分布。
F分布曲线在分母自由度较小或分子自由度较大时,曲线呈现出更窄的峰部和更长的尾部,表现出更强的离散性。随着分母自由度的增加,曲线的形状逐渐变得平滑。
9.1.2 正态性检验
正态性检验的目的是为了检测一组数据是否服从正态分布,是否表现出正态分布的特性。正态性检验的方法有很多,包括QQ图、KS检验、SW检验、JB检验等等。这里当然不可能把它们全部讲出来,但可以对一些常见方法进行简要介绍:
S-W检验
-
Shapiro-Wilk检验是一种用于验证数据集是否符合正态分布的统计方法。该方法通过计算样本数据的顺序统计量,并比较这些观察值与理论正态分布的期望值之间的差异来进行评估。
Shapiro-Wilk检验的核心理念:
-
提出假设,它假设数据集遵循正态分布。
-
计算Shapiro-Wilk统计量W。这个统计量是一个衡量数据与正态分布拟合程度的指标,其基于实际观察值与理论正态分布期望值之间的差异。如果W值越接近1,则表明数据更符合正态分布。
-
Shapiro-Wilk统计量W与临界值进行比较。临界值是根据特定的显著性水平(通常为5%)和数据集的大小计算得出的。这一比较过程是判断数据是否服从正态分布的关键步骤。
-
根据统计量W与临界值的比较结果,可以得出结论。如果W值显著低于临界值,则可以拒绝零假设,这意味着数据不服从正态分布。相反,如果W值不低于临界值,则不能拒绝零假设,这表明数据可能服从正态分布。核心统计量为:
from scipy import stats
import numpy as np
# 创建一个示例数据集(这里使用正态分布数据)
data = np.random.normal(0, 1, 100)
# 执行Shapiro-Wilk检验
statistic, p_value = stats.shapiro(data)
# 打印结果
print("Shapiro-Wilk test statistic:", statistic)
print("p-value:", p_value)
# 根据p-value做出判断
alpha = 0.05 # 常用的显著性水平
if p_value > alpha:
print("不能拒绝零假设,数据可能服从正态分布")
else:
print("拒绝零假设,数据不服从正态分布")
在实际应用中,当样本量在3到50之间时,我们倾向于看Shapiro-Wilk检验的结果,因为该检验对小样本数据更为敏感。
K-S检验
-
K-S检验(Kolmogorov-Smirnov检验)是一种非参数检验方法,用于检验一个样本是否来自特定的概率分布。对于正态分布的检验,K-S检验通过比较样本数据的累计分布函数与理论正态分布的累计概率分布函数,来判断样本数据是否符合正态分布。如果两个函数之间的最大偏差(D)在修正后小于临界值,则接受原假设,认为样本数据符合正态分布。否则,拒绝原假设,认为样本数据不符合正态分布。该方法在数据分析中广泛应用于正态分布的检验。
-
将样本数据从小到大进行数据排序。
-
计算ECDF,对于每个数据点xi,计算其在样本中的累积分布函数值。ECDF定义为:
其中,n是样本大小,I是指示函数,当xi≤x时,I为1,否则为0。
- 选择一个理论分布CDF作为比较基准,例如正态分布。这个理论分布的CDF记为F(x)。
- 计算最大差异D,对于每个数据点xi,计算ECDF和理论CDF之间的差异:
这里的max表示在所有可能的x值上取最大值。
-
确定显著性水平,选择一个显著性水平,例如0.05,这代表了拒绝零假设的临界值。
-
比较D与临界值,根据样本量和显著性水平,查找K-S检验的临界值表,确定D的临界值。如果计算出的D值大于临界值,则拒绝零假设,认为样本数据不来自所选的理论分布;如果D值小于或等于临界值,则没有足够证据拒绝零假设。
核心统计量为:
from scipy import stats
import numpy as np
# 创建一个示例数据集(这里使用正态分布数据)
data = np.random.normal(0, 1, 1000) # 生成1000个观测值
# 执行K-S检验
# 检验数据是否来自标准正态分布的CDF
statistic, p_value = stats.kstest(data, 'norm', args=(0, 1))
# 打印结果
print("K-S test statistic:", statistic)
print("p-value:", p_value)
# 根据p-value做出判断
alpha = 0.05 # 常用的显著性水平
if p_value > alpha:
print("不能拒绝零假设,数据可能服从标准正态分布")
else:
print("拒绝零假设,数据不服从标准正态分布")
当样本量较小时,K-S检验可能不够敏感,难以检测到分布的微小偏差。K-S检验对数据的极端值比较敏感,极端值可能会对检验结果产生较大影响。当样本量超过5000时,SPSS等统计软件可能仅显示Kolmogorov-Smirnov检验的结果,因为K-S检验适合用于大数据样本的正态性检验。
J-B检验
-
J-B检验(Jarque-Bera检验)是一种用于检验数据是否服从正态分布的统计检验方法。它基于数据的偏度和峰度两个统计量,通过计算统计量的标准化值来判断数据是否符合正态分布。
计算过程包括:
-
计算偏度S和峰度K以衡量数据分布的不对称性和尖锐程度。
-
根据这些值计算J-B统计量,它是偏度和峰度的标准化值之和。
-
查找临界值表或使用软件计算临界值,将J-B统计量与临界值进行比较。如果J-B统计量大于临界值,则拒绝原假设(数据服从正态分布),认为数据不符合正态分布。如果J-B统计量小于临界值,则不能拒绝原假设,认为数据可能服从正态分布。
核心统计量为:
需要注意的是,J-B检验是一种非参数检验方法,对数据分布的假设较少,因此在某些情况下可能比其他参数检验方法更为稳健。
QQ图
QQ图是一种直观观察数据是否服从正态性的方法。QQ图可以用于检验一组数据是否服从某一分布,或者检验两个分布是否服从同一个分布。如果QQ图呈现出直线趋势,且数据点大致分布在直线的周围,则说明数据比较接近正态分布。如果数据点呈现出弯曲趋势或分散分布,则说明数据可能偏离正态分布。在画QQ图时,应注意数据的样本量大小、异常值情况等因素,这些因素可能会影响QQ图的准确度。需要注意的是,QQ图是一种直观的图形工具,可以辅助判断数据的正态性,但不能完全准确地判断数据的分布情况。
可以通过下面一个例子展示如何去进行正态性检验。首先,通过numpy生成一组服从标准正态分布的样本,这里将样本量扩充到1000个:
import numpy as np
import matplotlib.pyplot as plt
# 生成标准正态分布的数据
data = np.random.normal(0, 1, 1000)
#Python绘制QQ图的方法集成在statsmodels当中,通过如下方式调用:import statsmodels.api as sm
import matplotlib.pyplot as plt
# 创建 Q-Q 图,并增加 45度线
fig = sm.qqplot(data, line='45')
plt.show()
得到QQ图如图所示:
从图中可以看到,蓝色散点表示样本取值与理论分布的关系,横坐标为理论分布的各个分位点,而纵坐标为样本分位点,它们近似分布在一条直线附近,因此可以初步判断它们服从正态分布。但这只是一种现象,是否真的服从正态分布还是要通过假设检验说明。
正态性检验的方法集成在scipy.stats当中。以Shapiro-Wilk检验为例,通过在scipy.stats中引入shapiro方法,对上述样本检验如下:
import scipy.stats as st
# 执行Shapiro-Wilk正态性检验
statistic, p_value = st.shapiro(data)
# 输出检验结果
print("Shapiro-Wilk统计量:", statistic)
print("p-value:", p_value)
得到Shapiro-Wilk统计量等于 0.9973,概率值0.098>0.05,无法拒绝原假设。因此,认为数据data具备正态性。同样的,还可以进行K-S检验和J-B检验:
statistic_1, p_value_1 = st.kstest(data,'norm')
# 输出检验结果
print("K-S统计量:", statistic_1)
print("p-value:", p_value_1)
statistic_2, p_value_2 = st.jarque_bera(data)
# 输出检验结果
print("J-B统计量:", statistic_2)
print("p-value:", p_value_2)
得到的结果概率也都超过0.05,认为数据是服从正态分布的。在kstest函数中,如果要使用它进行正态性检验,要在后面的参数里选择’norm’表明需要做的检验是正态性检验。