查看原文
其他

Python Pingouin:搞定各种假设检验和统计模型 !

推荐关注↓

原文作者:Giannis Tolios

来源:我得学城 

1. 假设检验的基本步骤

假设检验的第一步是提出研究假设,这是一种可以经过统计测试的陈述,涉及变量的比较,例如药物X可以比安慰剂降低血压。在这样做之后,我们指定零假设 ,它指出在总体中不存在影响。相比之下,备择假设 指出在总体中实际上存在影响。
下一步是数据收集。这可以通过实验、调查、采访和其他方法实现,具体取决于研究类型。
例如,A/B测试收集不同网站版本的用户反馈,以评估它们的性能。还可以使用为其他目的创建的数据集,这种方法被称为二次数据分析。
统计测试概述 source: https://philipppro.github.io/Statistical_tests_overview/
之后,我们需要决定哪种测试方法最适合我们的假设检验。
有很多可用的测试方法,包括t检验方差分析(ANOVA)卡方检验克鲁斯卡尔-沃利斯检验(Kruskal-Wallis)等等。
选择适当的测试方法取决于许多因素,包括变量的类型和分布。
因为是基于各种假设的参数测试方法(如ANOVA),所以我们需要评估我们的数据集是否满足这些假设。
上面提供了所有基本假设检验的概述。当然,还有更多的假设检验方法可用,但上面的表已涵盖了基本情况。
第一型和第二型错误 source: 原作者
之后,我们需要指定显著性水平 (alpha),这是拒绝零假设的阈值,通常设为0.05。因此,假设检验的结果为 值 > 0.05意味着无法拒绝零假设。相反, 值 ≤ 0.05允许我们拒绝零假设并接受备择假设。
更具体地说, 值是具有零假设为真的情况下观察到的效应发生的概率。
此外,显著性水平 等于犯第一型错误的概率,即在零假设为真时拒绝零假设(假阳性)。(beta)是犯第二型错误的概率,即在零假设为假时未能拒绝零假设(假阴性)。
另一个重要的概念是统计功效,它是正确拒绝零假设的概率,并定义为 。
在完成上述步骤之后,我们执行假设检验并陈述我们的结论,无论是拒绝零假设还是不拒绝。

2. Pingouin库

Pingouin(https://pingouin-stats.org/index.html) 是一个开源的Python库,支持各种假设检验和统计模型
该库包括许多测试,例如ANOVA、t检验、卡方检验、克鲁斯卡尔-沃利斯检验(Kruskal-Wallis)、曼-惠特尼检验(Mann-Whitney)、威尔科克森符号秩(Wilcoxon signed-rank)等。
此外,Pingouin允许计算两个变量之间的相关系数,并创建线性和逻辑回归模型。
Pingouin既友好又强大,因为它返回所有测试的详细结果,使其成为科学Python生态系统的重要组成部分。
本文,我们将使用Pingouin来运行假设检验并解释提供的结果。

3. 种子数据集

本文的案例研究基于种子数据集(https://archive.ics.uci.edu/ml/datasets/seeds)。
这个数据集由UCI机器学习库免费提供。该数据集包含有关3种小麦品种(Kama、Rosa和Canadian )的样本信息。
此外,数据集包括每个小麦核的各种几何特性,包括面积、周长、紧密度、核长、核宽等。
该数据集广泛用于机器学习任务,例如分类和聚类,但我们将其用于假设检验。更具体地说,我们的目标是评估小麦品种之间的几何差异。

4. ANOVA的案例研究

我们现在将利用Pingouin库和种子数据集,通过实际的假设检验案例来进行探讨。
我们的研究假设是紧密度与小麦品种有关,我们提出了零假设备择假设
  • :所有小麦品种的紧密度均值相同。
  • :小麦品种的紧密度均值不同。
在陈述了我们的假设之后,我们进入代码实践部分。
我们首先导入必要的Python库,并将种子数据集加载到pandas dataframe中。
然后,我们使用groupby()函数将数据集行按小麦品种分组,并计算每列的均值。
正如我们所看到的,对于每个品种,大多数变量的均值值显着不同。紧密度似乎是一个例外,所有小麦品种的平均值相似,因此我们将对此变量进行详细的研究。
我们使用pandas的boxplot()函数为紧密度变量创建箱线图。
显然,Kama和Rosa品种具有类似的四分位数,中位数几乎相同。
相反,Canadian品种似乎与其他品种略有不同,但我们需要通过假设检验进行验证。我们想要比较所有小麦品种的平均紧密度值,即存在一个有三个类别的独立变量和一个数值依赖变量。因此,这种情况下最适合的测试是单因素方差分析(ANOVA)。
作为一个参数化测试,ANOVA基于数据集的各种假设,其中一个是所有组样本都是正态分布的 。我们可以通过使用Seaborn函数kdeplot()为每个小麦品种创建一个KDE图来直观地评估这一点。
此外,我们使用Pingouinnormality()函数运行Shapiro-Wilk正态性测试 ,确认所有样本都是正态分布的。
请记住,Shapiro-Wilk对大样本不是特别准确,因此在这种情况下,Jarque-Bera或Omnibus等测试更可取。
此外,研究表明,ANOVA对这一假设的违反可以具有鲁棒性 ,因此轻微偏离正态分布并不是一个严重的问题。
当然,应该始终评估数据集是否符合测试假设,并考虑使用非参数测试。
除了Shapiro-Wilk等测试之外,创建Q-Q图是评估样本正态性的另一种方法。
这是一个散点图,可以轻松比较正态分布和样本分布的分位数。如果样本分布是正态的,所有点都将靠近 的直线。
我们可以使用Pingouin的qqplot()函数轻松为各种理论分布创建Q-Q图。此外,还在图中包括了一个最佳拟合线,基于线性回归模型。
显然,所有样本分位数都与正态分布几乎相同,进一步确认了Shapiro-Wilk测试和KDE图形评估。
ANOVA测试也基于所有样本具有相等方差的假设,这种性质称为同方差性。
Pingouin的homoscedasticity() 函数让我们通过使用Levene测试轻松评估这一点,这是评估方差相等的典型方法 。
根据Levene测试结果,组样本不符合同方差性的假设,即它们具有不均等的方差。我们可以通过使用Welch ANOVA测试来解决这个问题,与经典ANOVA相比,它更能够容忍违反这个假设的情况 。
执行Welch ANOVA测试后,我们检查结果数据框以评估结果。
首先, 值表示样本均值之间的变异性高于样本内变异性。部分Eta-squared值表示效应大小,因此帮助我们计算统计功率。
此外, 值几乎等于零,使其特别低于显着性水平( )。因此,我们可以拒绝零假设并接受备择假设,即小麦品种的平均紧凑度值不同。
拒绝ANOVA的零假设后,建议执行事后测试以确定哪些组差异具有统计学意义。我们选择了Games-Howell测试,因为它对方差的异质性具有鲁棒性,因此是Welch ANOVA 的补充。
显然,Canadian和其他品种之间的差异具有统计学意义。相比之下,Kama和Rosa品种的平均紧凑度值没有显着差异。

5. 结论

在本文中,我使用Pingouin库和种子数据集介绍了统计假设检验的基本概念。希望能帮助大家了解这些概念。
代码下载:https://github.com/derevirn/hypothesis-test

参考文献

[1] Biau, David Jean, Brigitte M. Jolles, and Raphaël Porcher. “P value and the theory of hypothesis testing: an explanation for new researchers.” Clinical Orthopaedics and Related Research® 468.3 (2010): 885–892.
[2] Lenhard, Johannes. “Models and statistical inference: The controversy between Fisher and Neyman–Pearson.” The British journal for the philosophy of science (2020).
[3] Vallat, Raphael. “Pingouin: statistics in Python.” J. Open Source Softw. 3.31 (2018): 1026.
[4] Charytanowicz, Małgorzata, et al. “Complete gradient clustering algorithm for features analysis of x-ray images.” Information technologies in biomedicine (2010): 15–24.
[5] Scheffe, Henry. The analysis of variance. Vol. 72. John Wiley & Sons, 1999.
[6] Shapiro, Samuel Sanford, and Martin B. Wilk. “An analysis of variance test for normality (complete samples).” Biometrika 52.3/4 (1965): 591–611.
[7] Schmider, Emanuel, et al. “Is it really robust? Reinvestigating the robustness of ANOVA against violations of the normal distribution assumption.” Methodology: European Journal of Research Methods for the Behavioral and Social Sciences 6.4 (2010): 147.
[8] Levene, Howard. “Robust tests for equality of variances.” Contributions to probability and statistics. Essays in honor of Harold Hotelling (1961): 279–292.
[9] Liu, Hangcheng. “Comparing Welch ANOVA, a Kruskal-Wallis test, and traditional ANOVA in case of heterogeneity of variance.” (2015).
[10] Games, Paul A., and John F. Howell. “Pairwise multiple comparison procedures with unequal n’s and/or variances: a Monte Carlo study.” Journal of Educational Statistics 1.2 (1976): 113–125.



- EOF -


加主页君微信,不仅Python技能+1

主页君日常还会在个人微信分享Python相关工具资源精选技术文章,不定期分享一些有意思的活动岗位内推以及如何用技术做业余项目

加个微信,打开一扇窗



推荐阅读  点击标题可跳转

1、16 个必知必会的 Python 教程!

2、小白看得懂的 Transformer (图解)

3、使用XGBoost算法改进ETF 交易策略,获得33.99%的年化收益率


觉得本文对你有帮助?请分享给更多人

推荐关注「Python开发者」,提升Python技能

点赞和在看就是最大的支持❤️

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存