python 显著性检验_Python SciPy 统计显著性检验(Statistical Significance Tests)

1、什么是统计显著性检验?

在统计中,统计意义是指产生的结果背后有原因,不是随机产生或偶然产生的。

SciPy为我们提供了一个名为scipy.stats的模块,该模块具有执行统计显着性检验的功能。

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

统计假说

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

零假设

它假定该观察值在统计上不显着。

替代假设

它假设这些观察是由于某种原因。

它替代零假设。

例如:

为了评估学生,我们将采取以下措施:

“学生比平均水平差”-作为无效假设,并且:

“学生胜于平均水平”-作为替代假设。

单尾检验

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

例如:

对于原假设:

“均值等于k”,我们可以有另一个假设:

“均值小于k”,或:

“平均值大于k”

两尾测试

当我们的假设正在测试两个值时。

例如:

对于原假设:

“均值等于k”,我们可以有另一个假设:

“平均值不等于k”

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

Alpha值

阿尔法值是有意义的水平。

例如:

要拒绝零假设,数据必须接近极限。

通常取值为0.01、0.05或0.1。

P值

P值表明数据实际上有多接近极限。

比较P值和alpha值以建立统计显着性。

如果p值<= alpha,我们将拒绝原假设,并说该数据具有统计意义。否则,我们接受原假设。

2、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)

Result:Ttest_indResult(statistic=0.40833510339674095, pvalue=0.68346891833752133)

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

例如: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).pvalue

print(res)

Result:

0.68346891833752133

3、KS-Test

KS测试用于检查给定值是否遵循分布。

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

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

它可以用作一尾或二尾测试。

默认情况下,它是两个尾部的。我们可以将参数Alternative传递为两侧,较小或较大之一的字符串。

例如:

查找给定值是否遵循正态分布:import numpy as np

from scipy.stats import kstest

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

res = kstest(v, 'norm')

print(res)

Result:

KstestResult(statistic=0.047798701221956841, pvalue=0.97630967161777515)

4、数据的统计描述

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

它返回以下描述:number of observations (nobs)

minimum and maximum values = minmax

mean

variance

skewness

kurtosis

例如:

显示数组中值的统计描述:import numpy as np

from scipy.stats import describe

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

res = describe(v)

print(res)

Result:

DescribeResult(

nobs=100,

minmax=(-2.0991855456740121, 2.1304142707414964),

mean=0.11503747689121079,

variance=0.99418092655064605,

skewness=0.013953400984243667,

kurtosis=-0.671060517912661

)

5、正态性检验(Skewness和Kurtosis)

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

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

Result:0.11168446328610283

-0.1879320563260931

例如:

查找数据是否来自正态分布:import numpy as np

from scipy.stats import normaltest

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

print(normaltest(v))

Result:NormaltestResult(statistic=4.4783745697002848, pvalue=0.10654505998635538)


版权声明:本文为weixin_39820177原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。