pearsonr() python_15个 Python统计假设测试(备忘单)

应用于机器学习的15个统计假设测试速查指南,附 Python代码

尽管在日常开发中会用到数以百计的统计假设测试,但在机器学习实际项目中可能只需要使用到其中一小部分。

在本文中,将涵括最流行的Python API的机器学习项目统计假设测试的备忘单。

每项统计测试均以下述统一的方式给出,包括:

  • 测试名称
  • 测试检测内容
  • 测试的关键假设
  • 如何解释测试结果
  • 用于测试的Python API。

注:当涉及到数据的预期分布或样本大小这样的假设时,即使在不满足假设的情况下,给定测试的结果虽然可能会不尽如人意,但是也不会无法使用。

通常,数据样本域必须足够大,以便能够分析出它们的分布。

在某些情况下,可以对数据进行校正以满足假设,例如:可以通过删除异常值将接近正态分布修正为正态分布,或在样本有不同方差时使用对自由度的修正。

最后,可能会对某一特定问题进行多项测试,例如:正态化。有时不能用统计数据直接得出清晰的答案,测试后得到的答案却是概率。为此,可以利用不同的方式考虑同一问题,得出不同的答案。所以,对于某些数据问题,需要进行多个不同的测试。

在我的新书中会涉及:统计假设检验、重采样方法,估计统计和非参数方法,并附有有29个进阶教程和完整的源代码。让我们开始吧。

  • 更新于2018年11月:增加了对所涉测试的详细论述。

v2-56b3ae06e57600f1ae32de8c38dee65e_b.jpg

教程概述

本教程分为以下四部分:

1.正态性测试

1. Shapiro-Wilk测试

2. D’Agostino’s K^2测试

3. Anderson-Darling测试

2. 相关性测试

1. Pearson相关系数

2.Spearmans序相关性

3 Kendall序相关性

4 Chi-Squared测试。

3 参数统计假设测试

1.学生t测试

2.配对学生t测试

3.方差分析测试(ANOVA)

4.重复测量方差分析(ANOVA)测试

4.非参数统计假设测试

1.Mann-Whitney U测试

2.Wilcoxon带符号序测试

3.Kruskal-Wallis H测试

4.Friedman测试

1. 正态性测试

本节所列出的统计测试,可以利用它们来检查数据是否为高斯分布。

Shapiro-Wilk测试

测试数据样本是否为高斯分布。

假设:

  • 各样本中的观察数据独立同分布(iid)。

解释:

  • H0:样本为高斯分布。
  • H1:样本为非高斯分布。

Python代码。

v2-27c3958392eabbc660acd112da168eed_b.jpg
  • 详细信息请参考:
  • scipy.stats.shapiro
  • 维基百科:Shapiro-Wilk 测试

D’Agostino’s K^2 测试

测试数据样本是否为高斯分布。

假设:

各样本中的观察数据独立同分布(iid)。

解释

H0:样本为高斯分布。

H1:样本为非高斯分布。

Python代码

v2-0baad8e05b7415f3c912915505de77e0_b.jpg

详细信息请参考:

  • scipy.stats.normaltest
  • 维基百科:D’Agostino’s $K$-squared 测试

Anderson-Darling测试

测试数据样本是否为高斯分布。

假设

·各样本中的观察数据独立同分布(iid)。

解释

H0:样本为高斯分布。

H1:样本为非高斯分布。

Python代码

v2-cfcbd6cf61d456fd84b387fba33d6904_b.jpg
  • 详细信息请参考:
  • scipy.stats.anderson
  • 维基百科:Anderson-Darling测试

2. 相关性测试

本节所列出的统计测试,可利用它们来检查两个样本是否相关。

Pearson相关系数

检验两个样本是否线性相关。

假设:

·各样本中的观察数据独同分布(iid)。

·各样本中的观测数据呈正态分布。

·各样本的观测数据有相同的方差。

解释

·H0:两个样本之间相互独立。

·H1:样本之间存在依存关系。

Python代码

v2-8e332d58be3e9d2af3abcc6787e0a2f2_b.jpg
  • 详细信息请参考:
  • scipy.stats.pearsonr
  • 维基百科:Pearson相关系数

Spearman序相关性

测试两个样本是否存在单调关系。

假设

·各样本中的观察数据独立同分布(iid)。

·各样本中的观测数据可以进行排序。

解释

·H0:两个样本之间相互独立。

·H1:样本之间存在依存关系。

Python代码

v2-7c1e08c0fef75529064ddba277835753_b.jpg

详细信息请参考:

  • scipy.stats.spearmanr
  • 维基百科:Spearman序相关系数

Kendall序相关性

测试两个样本是否存在单调关系。

假设

  • 各样本中的观察数据独立同分布(iid)。
  • 各样本中的观测数据都可以进行排序。

解释

H0:两个样本之间相互独立。

H1:样本之间存在依存关系。

Python代码。

v2-24aed821d468aec7da30565b2cd4ca5f_b.jpg

详细信息请参考:

  • scipy.stats.kendalltau
  • 维基百科Kendall序相关系数

Chi-Squared测试

测试两个范畴变量是相关的还是独立的。

假设

·计算相依表时使用的观察数据是独立的。

·相依表的每个单元格中至少有25个例子。

解释

·H0:两个样本之间相互独立。

·H1:样本之间存在依存关系。

Python代码

v2-db2a9d55a36043eaf0ee201ed85d4b82_b.jpg

详细信息请参考:

  • scipy.stats.chi2_contingency
  • 维基百科:Chi-Squared测试

3. 参数统计假设测试

本节列出了可用于比较数据样本的统计测试。

学生t测试

测试两个独立样本的均值是否有显著不同。

假设

·各样本中的观察结果独立同分布(IID)。

·各个样本中的观察数据呈正态分布。

·各样本中的观察数据具有相同的方差。

解释

·H0:样本的均值相等。

·H1:样本的均值不等。

Python代码

v2-f2aa491e93c4f72fbe85fd756df780f9_b.jpg

详细信息请参考:

  • scipy.stats.ttest_ind
  • 维基百科:Student’s t-test测试

成对的学生t测试

测试两个样本对的均值是否存在显着性差异。

假设

·各样本中的观测数据是独立同分布的(Iid)。

·各样本中的观测数据呈正态分布。

·各样本的观测数据有相同的方差。

·各样本的观测数据成对出现。

解释

·H0:样本的均值相等。

·H1:样本的均值不等。

Python代码

v2-8f1574a093711295a4cd3bc63455bb8d_b.jpg

详细信息请参考:

  • scipy.stats.ttest_rel
  • 维基百科:Student’s t-test测试

方差分析(ANOVA)测试

测试两个或多个独立样本的均值是否存在显着性差异。

假设

  • ·各样本中的观测数据独立同分布 (Iid)。
  • 各样本中的观测数据呈正态分布。
  • 各样本的观测数据有相同的方差。

解释

·H0:样本的均值相等。

·H1:一个或多个样本的均值不等。

Python代码

v2-4b5ecfb64c2240bd24106ceef9c174b5_b.jpg

重复测量方差分析(ANOVA)测试

测试两个或更多样本对的均值是否存在显着性差异。

假设

  • 各样本中的观测数据独立同分布 (Iid)。
  • 各样本中的观测数据呈正态分布。
  • 各样本的观测数据有相同的方差。
  • 各样本的观测数据成对。

解释

·H0:样本的均值相等。

·H1:一个或多个样本的均值不等。

Python代码

目前Python不支持这种测试。

详细信息请参考:

  • ·维基百科:方差分析

4. 非参数统计假设测试

MannWhitney U测试。

测试两个独立样本的分布是否相等。

假设

·各样本中的观测数据为独立同分布的(Iid)。

·可对各样本中的观察数据进行排序。

解释

·H0:样本之间同分布。

·H1:样本之间分布不同。

Python代码

v2-0250f423f6e66db4ea831a1781c7bf96_b.jpg

详细信息请参考:

  • scipy.stats.mannwhitneyu
  • 维基百科:Mann-Whitney U 测试

Wilcoxon带符号 –序测试

测试样本对的分布是否相等。

假设:

  • 各样本中的观测数据为独立同分布 (Iid)。
  • 可对各样本中的观察数据进行排序。
  • 各样本的观察数据是成对的。

解释

H0:样本之间同分布。

H1:样本之间的分布不等。

Python代码。

v2-ab5fc47b6ad10fb94235a9f7cb30a4ea_b.jpg

详细信息请参考:

  • scipy.stats.wilcoxon
  • 维基百科 signed-rank 测试

Kruskal-Wallis H 测试

测试两个或多个独立样本的分布是否相等。

假设

·各样本中的观察数据独立同分布(IID)。

·可对各样本中的观察数据进行排序。

解释:

·H0:所有样本同分布。

·H1:一个或多个样本的分布不相同。

Python代码

v2-f72df4a9f0d69db19d67988cd13b35c6_b.jpg

详细信息请参考:

  • scipy.stats.kruskal
  • 维基百科Kruskal-Wallis方差分析

Friedman 测试

测试两对或多对样本的分布是否相等。

假设

·各样本中的观察数据独立同分布(IID)。

·可对各样本中的观察数据进行排序。

·各样本的观测数据成对。

解释

·H0:所有样本同分布。

·H1:一个或多个样本的分布不同。

Python代码

v2-f35fade939fa9ddf98fe3752ba904ebc_b.jpg

详细信息请参考:

  • scipy.stats.friedmanchisquare
  • 维基百科Friedman测试

课外阅读

如果想深入了解本专题的话,本节给出了更多关于本主题的参考资料。

  • ·Python正态测试通论
  • ·如何利用相关性来理解变量之间的关系?
  • 如何利用Python进行的参数统计测试?
  • 统计假设测试通论

总结

在本教程中,对机器学习项目中可能需要用到的重要的统计假设测试做了介绍。

具体而言,通过本文可以了解到:

  • 在不同应用环境下使用到的不同种类的测试,如:正态性检查、变量之间的关系和样本之间的差异。
  • 每个测试的关键假设以及如何解释测试结果。
  • ·如何使用Python API实现该测试。

还有问题吗?

可在下面的评论中提出你的问题,我会尽量作答。

我是否遗漏了一项重要的统计测试?或者遗漏了列表中的测试的关键假设?请在下面的评论中告诉我。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值