显著性检验

收藏605

阅读2424

更新时间2025-08-14

什么是统计显着性检验(Statistical Significance Test)?

在统计学中,统计显着性意味着产生的结果背后有原因,它不是随机产生的,也不是偶然产生的。

SciPy 提供名为 scipy.stats 的模块,其中包含用于执行统计显著性检验的函数。

执行此类测试时,以下技术和关键词很重要:

统计学中的假设

假设是关于总体参数的假设。

零假设(Null Hypothesis)

它假设观察结果不具有统计显着性。

替代假设(Alternate Hypothesis)

它假设观察结果是由于某种原因造成的。

它是零假设的替代。

例如:

为了对学生进行评估,我们将采取:

“学生比平均水平差” - 作为零假设,以及:

“学生比平均水平好” - 作为替代假设。

单侧检验

当我们的假设仅测试值的一侧时,它被称为“单侧检验”。

例如:

对于原假设:

“平均值等于 k”,我们可以有替代假设:

“平均值小于 k”,或:

“平均值大于 k”

双侧检验

当我们的假设测试值的两侧时。

例如:

对于零假设:

“平均值等于 k”,我们可以有替代假设:

“平均值不等于 k”

在这种情况下,平均值小于或大于 k,并且需要检查两侧。

Alpha 值

Alpha 值是显著性水平。

例如:

数据必须有多接近极端才能拒绝零假设。

通常取 0.01、0.05 或 0.1。

P 值

P 值表明数据实际上与极值的接近程度。

比较 P 值和 alpha 值以确定统计显着性。

如果 p 值 <= alpha,我们拒绝零假设并说数据具有统计显着性。否则我们接受零假设。

T 检验

T 检验用于确定两个变量的均值之间是否存在显著差异,并让我们知道它们是否属于同一分布。

它是双侧检验。

函数 ttest_ind() 接受两个相同大小的样本,并生成包含 t 统计量和 p 值的元组。

实例

判断给定的值 v1 和 v2 是否来自同一分布:

import numpy as np
from scipy.stats import ttest_ind

v1 = np.random.normal(size=100)
v2 = np.random.normal(size=100)

res = ttest_ind(v1, v2)

print(res)

结果:

Ttest_indResult(statistic=0.40833510339674095, pvalue=0.68346891833752133)

如果您只想返回 p 值,请使用 pvalue 属性:

实例

...
res = ttest_ind(v1, v2).pvalue

print(res)

结果:

0.68346891833752133

KS 检验

KS 检验用于检查给定值是否遵循某种分布。

该函数将要测试的值和 CDF 作为两个参数。

提示:CDF 可以是字符串或返回概率的可调用函数。

它可以用作单侧检验或双侧检验。

默认情况下,它是双侧的。我们可以将参数 alternative 作为 "two-sided"、"less" 或 "greater" 的字符串传递。

实例

判断给定的值是否遵循正态分布:

import numpy as np
from scipy.stats import kstest

v = np.random.normal(size=100)

res = kstest(v, 'norm')

print(res)

结果:

KstestResult(statistic=0.047798701221956841, pvalue=0.97630967161777515)

数据的统计描述

为了查看数组中值的摘要,我们可以使用 describe() 函数。

它返回以下描述:

  1. 观察次数(nobs)
  2. 最小值和最大值 = minmax
  3. 平均值
  4. 方差
  5. 偏度
  6. 峰度

实例

显示数组中值的统计描述:

import numpy as np
from scipy.stats import describe

v = np.random.normal(size=100)
res = describe(v)

print(res)

结果:

DescribeResult(
  nobs=100,
  minmax=(-2.0991855456740121, 2.1304142707414964),
  mean=0.11503747689121079,
  variance=0.99418092655064605,
  skewness=0.013953400984243667,
  kurtosis=-0.671060517912661
)

正态性检验(偏度和峰度)

正态性检验基于偏度和峰度。

normaltest() 函数返回零假设的 p 值:

“x 来自正态分布”。

偏度:

数据对称性的度量。

对于正态分布,它是 0。

如果它是负数,则表示数据向左偏斜。

如果它是正数,则表示数据向右偏斜。

峰度:

衡量数据相对于正态分布是重尾还是轻尾。

正峰度表示重尾。

负峰度表示轻尾。

实例

求数组中值的偏度和峰度:

import numpy as np
from scipy.stats import skew, kurtosis

v = np.random.normal(size=100)

print(skew(v))
print(kurtosis(v))

结果:

0.11168446328610283
-0.1879320563260931

实例

判断数据是否来自正态分布:

import numpy as np
from scipy.stats import normaltest

v = np.random.normal(size=100)

print(normaltest(v))

结果:

NormaltestResult(statistic=4.4783745697002848, pvalue=0.10654505998635538)

相关

视频

RELATED VIDEOS

更多

免费

phpStudy极速入门视频教程

免费

Midjourney基础课程
初级 Midjourney基础课程

11149次学习

收藏

免费

极客学院Git使用视频教程

免费

尚观shell视频教程
高级 尚观shell视频教程

15709次学习

收藏

免费

尚观Linux入门视频教程
初级 尚观Linux入门视频教程

42887次学习

收藏

免费

尚观Linux初级视频教程
初级 尚观Linux初级视频教程

40264次学习

收藏

免费

尚观Linux中级视频教程
中级 尚观Linux中级视频教程

48298次学习

收藏

免费

尚观Linux高级视频教程
高级 尚观Linux高级视频教程

41982次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

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

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