DAgostino-Pearson正态检验(normaltest)

D'Agostino-Pearson检验(也称为D'Agostino和Pearson正态性检验)是一种用于检验数据是否符合正态分布的统计检验方法。它基于数据的样本统计量,主要包括偏度(skewness)和峰度(kurtosis),来评估数据是否接近正态分布。这个检验的基本原理和步骤如下:

  1. 提出假设:D'Agostino-Pearson检验的原假设是数据来自正态分布(正态性假设)。备择假设是数据不来自正态分布。

  2. 计算偏度和峰度:首先,计算数据的样本偏度和峰度。偏度测量数据分布的不对称程度,正态分布的偏度为0。峰度测量数据分布的尖锐程度,正态分布的峰度为3。如果偏度和峰度与正态分布的理论值有显著偏差,可能表明数据不符合正态分布。

  3. 统计检验:D'Agostino-Pearson检验使用偏度和峰度的统计量,计算一个综合的统计检验值(通常称为D'Agostino统计量)。该统计量的分布在原假设下应该接近于卡方分布。

  4. 计算p值:通过D'Agostino统计量,计算出一个p值,表示观测到的统计检验值在原假设下的概率。p值小于显著性水平(通常是0.05)时,可以拒绝原假设,认为数据不服从正态分布。

D'Agostino-Pearson检验通常用于中小样本量的情况,并且对于非正态分布的数据比K-S检验更为稳健。在Python中,你可以使用SciPy库中的scipy.stats模块的normaltest函数来执行D'Agostino-Pearson检验。以下是一个示例:

import numpy as np
from scipy import stats

# 创建示例数据
data = np.random.normal(loc=12, scale=2.5, size=340)

# 执行D'Agostino-Pearson检验
k2_statistic, p_value = stats.normaltest(data)

# 打印结果
print("D'Agostino-Pearson统计量 =", k2_statistic)
print("p值 (p) =", p_value)

# 设置显著性水平
alpha = 0.05

# 根据p值进行假设检验
if p_value < alpha:
    print("拒绝原假设:数据不服从正态分布")
else:
    print("接受原假设:数据服从正态分布")

你可能感兴趣的:(机器学习,算法,人工智能,python,概率论)