返回

Python验证正态分布:理解统计推断的基础

见解分享

正态分布概述

正态分布,又称常态分布或高斯分布,是一种常见的连续概率分布。它在自然界和社会科学中广泛存在,例如人的身高、智商、考试成绩等都近似服从正态分布。正态分布具有以下特点:

  • 对称性:正态分布曲线以均值为中心,左右两侧对称。
  • 钟形曲线:正态分布曲线呈钟形,两端逐渐变缓,中间最高。
  • 标准差:正态分布的标准差决定了曲线的宽度,标准差越大,曲线越平缓。
  • 中心极限定理:当样本量足够大时,样本均值的分布近似服从正态分布。

Python验证正态分布

在Python中,可以使用多种方法来验证正态分布。以下列举三种常用的方法:

1. Shapiro-Wilk检验

Shapiro-Wilk检验是一种非参数检验,用于检验数据是否服从正态分布。其步骤如下:

from scipy.stats import shapiro

# 加载数据
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 进行Shapiro-Wilk检验
result = shapiro(data)

# 打印检验结果
print("Shapiro-Wilk检验结果:", result)

检验结果包括统计量和p值。如果p值小于显著性水平(通常为0.05),则拒绝原假设,即数据不满足正态分布。

2. Jarque-Bera检验

Jarque-Bera检验是一种参数检验,用于检验数据是否服从正态分布。其步骤如下:

from scipy.stats import jarque_bera

# 加载数据
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 进行Jarque-Bera检验
result = jarque_bera(data)

# 打印检验结果
print("Jarque-Bera检验结果:", result)

检验结果包括统计量和p值。如果p值小于显著性水平(通常为0.05),则拒绝原假设,即数据不满足正态分布。

3. Lilliefors检验

Lilliefors检验是一种非参数检验,用于检验数据是否服从正态分布。其步骤如下:

from scipy.stats import lilliefors

# 加载数据
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 进行Lilliefors检验
result = lilliefors(data)

# 打印检验结果
print("Lilliefors检验结果:", result)

检验结果包括统计量和p值。如果p值小于显著性水平(通常为0.05),则拒绝原假设,即数据不满足正态分布。

绘制正态分布图

除了上述检验方法外,我们还可以通过绘制正态分布图来直观地了解数据是否服从正态分布。其步骤如下:

import matplotlib.pyplot as plt

# 加载数据
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 计算样本均值和样本标准差
mean = np.mean(data)
std = np.std(data)

# 生成正态分布曲线
x = np.linspace(mean - 3 * std, mean + 3 * std, 100)
y = 1 / (std * np.sqrt(2 * np.pi)) * np.exp(-((x - mean) ** 2) / (2 * std **  2))

# 绘制正态分布图
plt.plot(x, y)
plt.show()

正态分布图呈钟形,两端逐渐变缓,中间最高。如果数据服从正态分布,则数据点将大致落在正态分布曲线上。

总结

在统计分析中,验证正态分布是必不可少的一环。本文介绍了使用Python验证正态分布的几种常用方法,包括Shapiro-Wilk检验、Jarque-Bera检验和Lilliefors检验。同时,还提供了绘制正态分布图的步骤,让您直观地了解正态分布的特征。通过本文,您将能够轻松验证数据是否服从正态分布,并为后续的统计分析奠定坚实的基础。