C2.4

Shapiro-Wilk检验(正态分布检验)

教材页 第2章
 

问题描述:
Python完成正态分布检验。检验方法为:Shapiro-Wilk检验

Python

from scipy import stats
sample_data = [1.2, 2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9, 9.0, 10.1]
statistic, p_value = stats.shapiro(sample_data)
if p_value > 0.05: print("样本数据符合正态分布")
else: print("样本数据不符合正态分布")

Python

import numpy as np
from scipy.stats import shapiro

# 数据集
data = np.array([3, 5, 7, 5, 3, 8, 1, 4, 6, 3, 5, 7, 4, 5, 4, 3, 6, 8])

# 进行Shapiro-Wilk检验
stat, p_value = shapiro(data)

# 打印结果
print(f'Shapiro-Wilk检验统计量: {stat}')
print(f'p值: {p_value}')

# 根据p值判断是否拒绝原假设
alpha = 0.05; #显著性水平
if p_value > alpha: print("数据集可能来自正态分布(不拒绝原假设)")
else: print("数据集不太可能来自正态分布(拒绝原假设)")

输出

Shapiro-Wilk检验统计量: 0.9552919268608093
p值: 0.5138964653015137
数据集可能来自正态分布(不拒绝原假设)

书籍 姜维.《数据分析与数据挖掘》、《数据分析与数据挖掘建模与工具》,电子工业出版社, 2023,2024。
软件 Python,C++(附加orsci包)。