0

0

SPSS 与 Python KS 检验结果差异解析:为何正态性检验结果不一致?

心靈之曲

心靈之曲

发布时间:2026-02-03 19:17:01

|

747人浏览过

|

来源于php中文网

原创

SPSS 与 Python KS 检验结果差异解析:为何正态性检验结果不一致?

spss 与 python 的 kolmogorov-smirnov(ks)检验常因默认假设不同而产生显著差异:spss 默认执行参数未知的 lilliefors 校正版 ks 检验,而 scipy 的 `kstest` 默认检验是否服从**指定参数**(如标准正态分布),二者原假设和统计量计算逻辑本质不同。

在实际数据分析中,当使用 KS 检验评估变量(如 age 或 height)的正态性时,若直接调用 scipy.stats.kstest(data, 'norm') 或 kstest(data, norm(loc=0, scale=1).cdf),你实际上是在检验数据是否来自标准正态分布(均值为 0、标准差为 1)。但原始数据 age 的均值约为 7.5、标准差约 1.6,显然严重偏离标准正态——这导致 KS 统计量极大(如 0.9999997)、p 值极小(~1e-282),结果虽“正确”,却毫无实际意义,因为它检验的是一个明显错误的零假设。

而 SPSS 在“探索”或“单样本 KS”对话框中执行的并非标准 KS 检验,而是 Lilliefors 检验(Lilliefors’ correction to KS test):它仍使用 KS 统计量,但将正态分布的均值和标准差从样本中估计(即 loc=data.mean(), scale=data.std(ddof=1)),并采用专门校正后的临界值或 p 值表(或蒙特卡洛模拟)来判断显著性。这才是真正用于“检验数据是否服从某个正态分布”的实用方法。

✅ 正确做法(Python 中复现 SPSS 的逻辑):

from scipy import stats
import numpy as np

# 原始 age 数据
age = np.array([8,8,8,8,10,9,8,7,6,5,7,7,7,8,6,6,9,10,10,9,9,5,7,6,6,5,8,6,5,6,6,9,6,8,10,10,6,6,7,5,6,7,10])

# 方法1:使用 stats.gof(推荐,SciPy 1.12+)
res = stats.goodness_of_fit(stats.norm, age, statistic='ks', random_state=42)
print(f"Lilliefors KS statistic: {res.statistic:.4f}")  # ≈ 0.190
print(f"p-value (Monte Carlo): {res.pvalue:.3f}")        # ≈ 0.000–0.001

# 方法2:手动实现(兼容旧版 SciPy)
def lilliefors_test(x, alpha=0.05, n_sim=1000):
    x = np.asarray(x)
    n = len(x)
    mu, sigma = x.mean(), x.std(ddof=1)
    # 计算经验 CDF 与拟合正态 CDF 的最大偏差
    x_sorted = np.sort(x)
    cdf_fitted = stats.norm.cdf(x_sorted, loc=mu, scale=sigma)
    ecdf = np.arange(1, n+1) / n
    ks_stat = np.max(np.abs(cdf_fitted - ecdf))

    # 粗略 p 值估计(实际应查 Lilliefors 表或模拟)
    # 此处仅示意:真实应用请使用 statsmodels.stats.diagnostic.lilliefors
    return ks_stat

print(f"Manual Lilliefors stat: {lilliefors_test(age):.4f}")  # ≈ 0.190

⚠️ 注意事项:

NexChatGPT
NexChatGPT

火爆全网的IDEA插件,支持IDEA全家桶

下载

立即学习Python免费学习笔记(深入)”;

  • scipy.stats.kstest 永远不自动估计分布参数;若需检验“是否服从正态分布(参数未知)”,必须显式使用 goodness_of_fit(..., statistic='ks') 或第三方库(如 statsmodels.stats.diagnostic.lilliefors)。
  • 对小样本(n Shapiro-Wilk 检验(scipy.stats.shapiro),其统计功效更高且专为正态性设计:
    shapiro_stat, shapiro_p = stats.shapiro(age)
    print(f"Shapiro-Wilk: W={shapiro_stat:.4f}, p={shapiro_p:.4f}")  # 更稳健的正态性判断
  • SPSS 的 sig. 列显示 0.000 并非精确为 0,而是

总结:差异根源不在代码错误,而在统计思想——检验“是否服从标准正态” vs “是否服从某正态分布”是两个不同问题。选择合适的方法,才能让检验结果真正服务于研究目标。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析的方法
数据分析的方法

数据分析的方法有:对比分析法,分组分析法,预测分析法,漏斗分析法,AB测试分析法,象限分析法,公式拆解法,可行域分析法,二八分析法,假设性分析法。php中文网为大家带来了数据分析的相关知识、以及相关文章等内容。

474

2023.07.04

数据分析方法有哪几种
数据分析方法有哪几种

数据分析方法有:1、描述性统计分析;2、探索性数据分析;3、假设检验;4、回归分析;5、聚类分析。本专题为大家提供数据分析方法的相关的文章、下载、课程内容,供大家免费下载体验。

281

2023.08.07

网站建设功能有哪些
网站建设功能有哪些

网站建设功能包括信息发布、内容管理、用户管理、搜索引擎优化、网站安全、数据分析、网站推广、响应式设计、社交媒体整合和电子商务等功能。这些功能可以帮助网站管理员创建一个具有吸引力、可用性和商业价值的网站,实现网站的目标。

742

2023.10.16

数据分析网站推荐
数据分析网站推荐

数据分析网站推荐:1、商业数据分析论坛;2、人大经济论坛-计量经济学与统计区;3、中国统计论坛;4、数据挖掘学习交流论坛;5、数据分析论坛;6、网站数据分析;7、数据分析;8、数据挖掘研究院;9、S-PLUS、R统计论坛。想了解更多数据分析的相关内容,可以阅读本专题下面的文章。

518

2024.03.13

Python 数据分析处理
Python 数据分析处理

本专题聚焦 Python 在数据分析领域的应用,系统讲解 Pandas、NumPy 的数据清洗、处理、分析与统计方法,并结合数据可视化、销售分析、科研数据处理等实战案例,帮助学员掌握使用 Python 高效进行数据分析与决策支持的核心技能。

76

2025.09.08

Python 数据分析与可视化
Python 数据分析与可视化

本专题聚焦 Python 在数据分析与可视化领域的核心应用,系统讲解数据清洗、数据统计、Pandas 数据操作、NumPy 数组处理、Matplotlib 与 Seaborn 可视化技巧等内容。通过实战案例(如销售数据分析、用户行为可视化、趋势图与热力图绘制),帮助学习者掌握 从原始数据到可视化报告的完整分析能力。

56

2025.10.14

全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

13

2026.02.03

短剧入口地址汇总
短剧入口地址汇总

本专题整合了短剧app推荐平台,阅读专题下面的文章了解更多详细入口。

23

2026.02.03

植物大战僵尸版本入口地址汇总
植物大战僵尸版本入口地址汇总

本专题整合了植物大战僵尸版本入口地址汇总,前往文章中寻找想要的答案。

13

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 3.8万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号