Lilliefors正态性检验(一种非参数统计方法)

Lilliefors检验(也称为Kolmogorov-Smirnov-Lilliefors检验)是一种用于检验数据是否符合正态分布的统计检验方法,它是Kolmogorov-Smirnov检验的一种变体,专门用于小样本情况。与K-S检验不同,Lilliefors检验不需要假定数据的分布类型,它基于观测数据来评估是否来自正态分布。

Lilliefors检验是一种用于检验数据是否符合正态分布的非参数统计方法。它的基本原理和步骤如下:

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

  2. 数据预处理:首先,对数据进行排序,然后计算每个数据点的累积分布函数(ECDF)值。ECDF表示每个数据点在样本中的相对位置。

  3. 计算统计量:Lilliefors检验的统计量是基于ECDF的最大绝对偏差。它衡量了ECDF与标准正态分布累积分布函数之间的最大差异。统计量的计算涉及数据点与标准正态分布值的比较。

  4. 计算p值:通过比较观察到的统计量与经过模拟或查找临界值得到的分布,计算得到一个p值。p值表示观察到的最大绝对偏差在原假设下的概率。

  5. 假设检验:根据p值和显著性水平(通常是0.05),决定是否拒绝原假设。如果p值小于显著性水平,则拒绝原假设,认为数据不服从正态分布;如果p值大于显著性水平,则接受原假设,认为数据可能服从正态分布。

与Kolmogorov-Smirnov检验相比,Lilliefors检验更适用于小样本情况,因为它考虑了样本量的影响,并使用了不同的临界值来进行检验。然而,对于较大的样本,通常建议使用其他正态性检验方法,如D'Agostino-Pearson检验。

总之,Lilliefors检验是一种有用的工具,特别适用于小样本情况下的正态性检验,它不要求假定数据的分布类型,并可以提供有关数据分布是否接近正态分布的信息。

import numpy as np
from scipy import stats
from statsmodels.stats.diagnostic import lilliefors

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

# 执行Lilliefors检验
lilliefors_statistic, p_value = lilliefors(data)

# 打印结果
print("Lilliefors统计量 =", lilliefors_statistic)
print("p值 (p) =", p_value)

# 设置显著性水平
alpha = 0.05

# 根据p值进行假设检验
if p_value < alpha:
    print("拒绝原假设:数据不服从正态分布")
else:
    print("接受原假设:数据服从正态分布")
import numpy as np
from statsmodels.stats.diagnostic import lilliefors

# 创建一个示例数据集,可以是非正态分布
data_non_normal = np.random.exponential(scale=2, size=100)

# 执行Lilliefors检验
lilliefors_statistic, p_value = lilliefors(data_non_normal)

# 打印结果
print("Lilliefors统计量 =", lilliefors_statistic)
print("p值 (p) =", p_value)

# 设置显著性水平
alpha = 0.05

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

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