当前位置: 首页 > news >正文

【统计检验】正态性检验

统计检验前置核心:正态性检验|原理+方法+Python实战全攻略

正态性检验是进行t检验、方差分析(ANOVA)、线性回归等统计分析前的必做前提检验,核心作用是判断数据是否符合“钟形曲线”的正态分布。。


一、什么是正态性检验?(一句话看懂)

  • 正态分布:数据呈现“中间多、两头少、左右对称”的钟形曲线(比如身高、体重、考试成绩)。
  • 正态性检验:判断你的数据是否符合这种钟形分布的统计方法。

为什么必须做?

因为 t检验、ANOVA、线性回归等经典统计方法,都有一个核心假设:数据服从正态分布。如果数据不正态,这些方法的结果会不准、不可靠,甚至完全错误

正态性检验就是统计分析前的“安检”:
✅ 数据正态 → 放心用经典方法
❌ 数据不正态 → 换非参数方法(如Mann-Whitney U检验)或数据变换


二、3种最常用的正态性检验方法

1. 图形法:QQ图(最直观)

原理

把你的数据分位数,和标准正态分布的分位数一一对应画图。

  • 如果点大致落在一条直线上→ 数据符合正态分布
  • 如果点严重偏离直线→ 数据不符合正态分布
优点
  • 直观、可视化,能快速判断数据偏离正态的程度
  • 无严格的显著性阈值,适合初步筛选

2. Shapiro-Wilk检验(小样本首选)

原理

计算统计量 ( W ),衡量数据与正态分布的贴合程度:
W = ( ∑ i = 1 n a i x ( i ) ) 2 ∑ i = 1 n ( x i − x ‾ ) 2 W = \frac{\left(\sum_{i=1}^{n} a_i x_{(i)}\right)^2}{\sum_{i=1}^{n} (x_i - \overline{x})^2}W=i=1n(xix)2(i=1naix(i))2

  • (x ( i ) x_{(i)}x(i)):排序后的样本数据
  • (a i a_iai):基于样本量的理论常数
  • ( W ) 越接近1 → 数据越接近正态分布
统计假设
  • 原假设 (H 0 H_0H0):数据服从正态分布
  • 备择假设 (H 1 H_1H1):数据不服从正态分布
优点
  • 对小样本( n < 50 )精度高、检验力强
  • 计算高效,结果直观
缺点
  • 大样本(n > 1000 )过于敏感,会把轻微偏离正态的情况误判为“不正态”

3. Kolmogorov-Smirnov(K-S)检验(大样本适用)

原理

比较数据的“经验分布函数”和正态分布的“理论分布函数”,计算两者的最大差异 (D n D_nDn):
D n = sup ⁡ x ∣ D n ( x ) − F ( x ) ∣ D_n = \sup_x |D_n(x) - F(x)|Dn=xsupDn(x)F(x)

  • (D n ( x ) D_n(x)Dn(x)):数据的经验分布函数(实际观测的累积概率)
  • (F ( x ) F(x)F(x)):正态分布的理论累积分布函数
  • (D n D_nDn) 越小 → 数据越接近正态分布
统计假设
  • 原假设 (H 0 H_0H0):数据服从正态分布
  • 备择假设 (H 1 H_1H1):数据不服从正态分布
优点
  • 对大样本( n > 1000 )计算高效
  • 可用于检验任意分布(不止正态分布)
缺点
  • 对小样本检验力弱,容易误判“正态”
  • 对数据的偏态、峰态敏感

三、方法选择速查表(直接照选)

场景推荐方法
小样本(( n < 50 ))Shapiro-Wilk检验 + QQ图
中样本(50 ≤ n ≤ 1000)Shapiro-Wilk检验 + QQ图
大样本(( n > 1000 ))K-S检验 + QQ图
快速初步判断QQ图

四、Python 完整实战(可直接运行)

我们模拟零件重量数据,用3种方法做正态性检验,含可视化。

1. 导入库 + 生成数据

importnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsfromscipy.statsimportshapiro,kstest,probplot# 固定随机种子np.random.seed(42)# 生成正态分布数据(零件重量:均值100g,标准差15g,1000个样本)data=np.random.normal(loc=100,scale=15,size=1000)

2. 可视化数据分布(初步判断)

plt.figure(figsize=(10,5))sns.histplot(data,kde=True,color='dodgerblue',bins=30,stat='density')plt.title('零件重量分布(含核密度曲线)',fontsize=14)plt.xlabel('重量(g)',fontsize=12)plt.ylabel('密度',fontsize=12)plt.grid(alpha=0.3)plt.show()

3. Shapiro-Wilk检验

# 执行检验shapiro_stat,shapiro_p=shapiro(data)# 输出结果print("===== Shapiro-Wilk 检验 =====")print(f"统计量 W:{shapiro_stat:.4f}")print(f"p值:{shapiro_p:.4f}")# 判断结果ifshapiro_p>0.05:print("结论:p > 0.05,数据符合正态分布 ✅")else:print("结论:p < 0.05,数据不符合正态分布 ❌")

4. K-S检验

# 计算数据的均值和标准差(用于K-S检验的理论分布参数)data_mean=np.mean(data)data_std=np.std(data)# 执行检验(对比正态分布)ks_stat,ks_p=kstest(data,'norm',args=(data_mean,data_std))# 输出结果print("\n===== Kolmogorov-Smirnov 检验 =====")print(f"统计量 D:{ks_stat:.4f}")print(f"p值:{ks_p:.4f}")# 判断结果ifks_p>0.05:print("结论:p > 0.05,数据符合正态分布 ✅")else:print("结论:p < 0.05,数据不符合正态分布 ❌")

5. QQ图可视化

plt.figure(figsize=(8,8))probplot(data,dist="norm",plot=plt)plt.title('正态性检验 QQ图',fontsize=14)plt.grid(alpha=0.3)plt.show()

五、数据不正态怎么办?(解决方案)

如果检验结果显示“数据不正态”,可按以下步骤处理:

1. 数据变换(最常用)

  • 对数变换:适合右偏数据(如收入、销量)
    log_data=np.log(data)# 注意:数据需为正数
  • 平方根变换:适合轻度右偏数据
    sqrt_data=np.sqrt(data)
  • Box-Cox变换:自动选择最优变换方式
    fromscipy.statsimportboxcox transformed_data,_=boxcox(data)

2. 换非参数检验方法

  • 替代t检验:Mann-Whitney U检验(独立样本)、Wilcoxon符号秩检验(配对样本)
  • 替代ANOVA:Kruskal-Wallis检验(多组样本)

六、正态性检验的优缺点(必背)

优点

  1. 是经典统计方法的“前置保障”,确保结果可靠
  2. 方法多样,可根据样本量灵活选择
  3. 结合可视化(QQ图),结果直观易解释

缺点

  1. 大样本下过于敏感,轻微偏离会误判“不正态”
  2. 对极端值、重尾数据不稳健
  3. 小样本下K-S检验检验力弱,容易误判“正态”
http://www.jsqmd.com/news/512800/

相关文章:

  • 激光雷达作物样例数据
  • AI 时代,前端先死,还是后端先死?
  • 2026.3.21 B. Twin Works
  • 面试必问的自动化测试框架你真会了吗?
  • springboot 项目集成 seate 分布式事务AT模式使用nacos完整配置步骤及说明
  • 南京租打印机别踩坑!押金透明、退机不扯皮才是王道
  • 0 基础入门 Agent:理论知识体系搭建指南
  • 【Kotlin】快速理解协程
  • 如何重置idea ai assistant ACP 插件中的 Cursor 账号登录状态?
  • 2026年3月拓竹H2C分析,拓竹多色打印系统受市场青睐,市面上诚信的拓竹多色打印系统公司分析综合实力与口碑权威评选 - 品牌推荐师
  • 机械行业文档系统如何解决CAD图纸跨平台粘贴?
  • 【统计分析】皮尔逊相关系数检验
  • 从 Token 到 Agent:一文串起 AI 大模型核心概念
  • 哪里有字体包下载:2026年可靠资源与安全使用指南
  • 医院电子病历系统怎样优化PDF文档导入速度?
  • 能源行业深度分析:当“微克煤耗”成为生死线,六西格玛培训如何重塑企业韧性
  • 2026年3月:值得关注的专业沙发翻新公司大揭秘,行业内专业沙发翻新聚焦优质品牌综合实力分析 - 品牌推荐师
  • 限时公开!6款免费AI论文工具半天搞定文理医工全类型论文 - 麟书学长
  • 中博咨询谈湖南国企三项制度改革:锚定政策导向,激活国企高质量发展内生动力
  • 租房新标准:要“无感关怀”,不要“智能炫技”
  • centos中防火墙操作
  • 沃虎电子LVDS解决方案:高速差分传输的完整链路守护
  • 2026.3.21 图论
  • 跨境环保包装让复购提升 50% 的秘诀
  • FFmpeg+DXGI:解决GDI录屏音画不同步
  • 纽约大学突破:AI推理过程实现故事化透明呈现能力
  • OpenCode 开源 AI 编程 Agent 完全指南:从安装到实战的 8 个步骤(2026最新)
  • BERT算法学习1-嵌入层结构
  • 用MATLAB复刻经典电话通信:手把手教你实现PCM编码与双机文件传输
  • Vue前端与.Net后端SM2加密通信实战:从sm-crypto到BouncyCastle的完整流程