本文约3000字,建议阅读6分钟本文我们将使用Pingouin Python库来检验种子数据集的假设检验案例。

假设检验是一种推断统计方法,它通过分析样本数据集来确定总体特征。假设检验所需的数学工具、概念在20世纪初由统计学家Ronald Fisher、Jerzy Neyman和Egon Pearson正式确立。这些工具成为现代科学研究的基本部分。应该指出的是,费舍尔和尼曼-皮尔逊曾经进行过学术竞争  ,但最终他们不同的方法的结合被确立为假设检验的现代形式  。

除了学术研究外,假设检验对于数据科学家尤其有用,因为它使我们能够进行A/B测试和其他实验。在本文中,我们将使用Pingouin Python库来检验种子数据集的假设检验案例。

虽然文章案例并非城市/空间研究的案例,但是概念、方法、代码仍然值得学习借鉴。

作者:Giannis Tolios

为适合中文阅读习惯,阅读更有代入感,原文翻译后有删改。

1. 假设检验的基本步骤

假设检验的第一步是提出研究假设,这是一种可以经过统计测试的陈述,涉及变量的比较,例如药物X可以比安慰剂降低血压。在这样做之后,我们指定零假设  ,它指出在总体中不存在影响。相比之下,备择假设  指出在总体中实际上存在影响。

下一步是数据收集。这可以通过实验、调查、采访和其他方法实现,具体取决于研究类型。

例如,A/B测试收集不同网站版本的用户反馈,以评估它们的性能。还可以使用为其他目的创建的数据集,这种方法被称为二次数据分析。

python假设检验计算p值 python做假设检验_python假设检验计算p值

统计测试概述 source: https://philipppro.github.io/Statistical_tests_overview/

之后,我们需要决定哪种测试方法最适合我们的假设检验。

有很多可用的测试方法,包括t检验、方差分析(ANOVA)、卡方检验、克鲁斯卡尔-沃利斯检验(Kruskal-Wallis)等等。

选择适当的测试方法取决于许多因素,包括变量的类型和分布。

因为是基于各种假设的参数测试方法(如ANOVA),所以我们需要评估我们的数据集是否满足这些假设。

上面提供了所有基本假设检验的概述。当然,还有更多的假设检验方法可用,但上面的表已涵盖了基本情况。

python假设检验计算p值 python做假设检验_数据集_02

第一型和第二型错误 source: 原作者

之后,我们需要指定显著性水平  (alpha),这是拒绝零假设的阈值,通常设为0.05。因此,假设检验的结果为  值 > 0.05意味着无法拒绝零假设。相反,  值 ≤ 0.05允许我们拒绝零假设并接受备择假设。

更具体地说,  值是具有零假设为真的情况下观察到的效应发生的概率。

此外,显著性水平  等于犯第一型错误的概率,即在零假设为真时拒绝零假设(假阳性)。  (beta)是犯第二型错误的概率,即在零假设为假时未能拒绝零假设(假阴性)。

另一个重要的概念是统计功效,它是正确拒绝零假设的概率,并定义为  。

在完成上述步骤之后,我们执行假设检验并陈述我们的结论,无论是拒绝零假设还是不拒绝。

2. Pingouin库

python假设检验计算p值 python做假设检验_数据集_03

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()函数将数据集行按小麦品种分组,并计算每列的均值。

python假设检验计算p值 python做假设检验_数据集_04

正如我们所看到的,对于每个品种,大多数变量的均值值显着不同。紧密度似乎是一个例外,所有小麦品种的平均值相似,因此我们将对此变量进行详细的研究。

我们使用pandas的boxplot()函数为紧密度变量创建箱线图。

python假设检验计算p值 python做假设检验_ci_05

显然,Kama和Rosa品种具有类似的四分位数,中位数几乎相同。

相反,Canadian品种似乎与其他品种略有不同,但我们需要通过假设检验进行验证。我们想要比较所有小麦品种的平均紧密度值,即存在一个有三个类别的独立变量和一个数值依赖变量。因此,这种情况下最适合的测试是单因素方差分析(ANOVA)。

作为一个参数化测试,ANOVA基于数据集的各种假设,其中一个是所有组样本都是正态分布的  。我们可以通过使用Seaborn函数kdeplot()为每个小麦品种创建一个KDE图来直观地评估这一点。

python假设检验计算p值 python做假设检验_ci_06

此外,我们使用Pingouinnormality()函数运行Shapiro-Wilk正态性测试  ,确认所有样本都是正态分布的。

python假设检验计算p值 python做假设检验_假设检验_07

请记住,Shapiro-Wilk对大样本不是特别准确,因此在这种情况下,Jarque-Bera或Omnibus等测试更可取。

此外,研究表明,ANOVA对这一假设的违反可以具有鲁棒性  ,因此轻微偏离正态分布并不是一个严重的问题。

当然,应该始终评估数据集是否符合测试假设,并考虑使用非参数测试。

除了Shapiro-Wilk等测试之外,创建Q-Q图是评估样本正态性的另一种方法。

python假设检验计算p值 python做假设检验_python假设检验计算p值_08

这是一个散点图,可以轻松比较正态分布和样本分布的分位数。如果样本分布是正态的,所有点都将靠近  的直线。

我们可以使用Pingouin的qqplot()函数轻松为各种理论分布创建Q-Q图。此外,还在图中包括了一个最佳拟合线,基于线性回归模型。

显然,所有样本分位数都与正态分布几乎相同,进一步确认了Shapiro-Wilk测试和KDE图形评估。

ANOVA测试也基于所有样本具有相等方差的假设,这种性质称为同方差性。

Pingouin的homoscedasticity() 函数让我们通过使用Levene测试轻松评估这一点,这是评估方差相等的典型方法  。

python假设检验计算p值 python做假设检验_ci_09

根据Levene测试结果,组样本不符合同方差性的假设,即它们具有不均等的方差。我们可以通过使用Welch ANOVA测试来解决这个问题,与经典ANOVA相比,它更能够容忍违反这个假设的情况  。

python假设检验计算p值 python做假设检验_假设检验_10

执行Welch ANOVA测试后,我们检查结果数据框以评估结果。

首先,  值表示样本均值之间的变异性高于样本内变异性。部分Eta-squared值表示效应大小,因此帮助我们计算统计功率。

此外,  值几乎等于零,使其特别低于显着性水平(  )。因此,我们可以拒绝零假设并接受备择假设,即小麦品种的平均紧凑度值不同。

python假设检验计算p值 python做假设检验_ci_11

拒绝ANOVA的零假设后,建议执行事后测试以确定哪些组差异具有统计学意义。我们选择了Games-Howell测试,因为它对方差的异质性具有鲁棒性,因此是Welch ANOVA  的补充。

显然,Canadian和其他品种之间的差异具有统计学意义。相比之下,Kama和Rosa品种的平均紧凑度值没有显着差异。

5. 结论

在本文中,我使用Pingouin库和种子数据集介绍了统计假设检验的基本概念。希望能帮助大家了解这些概念。

代码下载:

https://github.com/derevirn/hypothesis-test

祝学习愉快!

References

[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.

编辑:于腾凯

校对:林亦霖