菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

SciPy 统计显著性检验


什么是统计显著性检验?

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

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

以下是执行此类测试时一些重要的技术和关键词:


统计假设

假设是对总体参数的一种推测。


零假设(Null Hypothesis)

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


备择假设(Alternate Hypothesis)

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

它是零假设的替代。

示例

对于学生的评估,我们会这样考虑:

“学生比平均水平差”——作为零假设,和

“学生比平均水平好”——作为备择假设。


单尾检验(One tailed test)

当我们的假设只检验数值的一侧时,称为“单尾检验”。

示例

对于零假设

“均值等于 k”,我们可以有备择假设

“均值小于 k”,或者

“均值大于 k”


双尾检验(Two tailed test)

当我们的假设检验数值的两侧时。

示例

对于零假设

“均值等于 k”,我们可以有备择假设

“均值不等于 k”

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


Alpha 值(Alpha value)

Alpha 值是显著性水平。

示例

在拒绝零假设之前,数据必须接近什么程度的极端值。

通常取值为 0.01、0.05 或 0.1。


P 值(P value)

P 值告诉我们数据实际接近极端值的程度。

P 值和 Alpha 值进行比较,以确定统计显著性。

如果 p 值 <= alpha,我们拒绝零假设,并认为数据在统计上是显著的。否则,我们接受零假设。



T 检验(T-Test)

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-Test)

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 来自正态分布”.


偏度(Skewness)

数据的对称性度量。

对于正态分布,它为 0。

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

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


峰度(Kurtosis)

衡量数据与正态分布相比是重尾还是轻尾。

正峰度表示重尾。

负峰度表示轻尾。


示例

找出数组中值的偏度和峰度

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)

自己动手试一试 »


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持