作者|GUEST BLOG 编译|VK 来源|Analytics Vidhya
介绍
“事实是每个人都相信的简单陈述。也就是事实是没有错的,除非它被人发现了错误。假设有一个没人愿意相信的建议,那么它要直到被发现有效的时候才能成为事实。” –爱德华·泰勒
我们正在应对一场空前规模的流行病。全世界的研究人员都在疯狂地试图开发一种疫苗或COVID-19的治疗方法,而医生们正试图阻止这种流行病席卷整个世界。
我最近有了一个想法,把我的统计知识应用到这些大量COVID数据中。
考虑这样一个场景:医生有四种医疗方法来治疗病人。一旦我们有了测试结果,用最少时间治愈病人的治疗会是最好的方法。
但如果这些病人中的一些已经部分治愈,或者其他药物已经在治疗他们呢?
为了作出一个有信心和可靠的决定,我们需要证据来支持我们的做法。这就是方差分析的概念发挥作用的地方。
在本文中,我将向你介绍方差分析测试及其用于做出更好决策的不同类型。我将在Python中演示每种类型的ANOVA(方差分析)测试,以可视化它们并处理COVID-19数据。
注意:你必须了解统计学的基本知识才能理解这个主题。最好了解t检验和假设检验。
什么是方差分析测试(ANOVA)
方差分析,或称方差分析,可以看作是两组以上的t检验的推广。独立t检验用于比较两组之间的条件平均值。当我们想比较两组以上患者的病情平均值时,使用方差分析。
方差分析测试模型中某个地方的平均值是否存在差异(测试是否存在整体效应),但它不能告诉我们差异在哪里(如果存在)。为了找出两组之间的区别,我们必须进行事后检验。
要执行任何测试,我们首先需要定义原假设和替代假设:
- 零假设–各组之间无显着差异
- 替代假设–各组之间存在显着差异
基本上,方差分析是通过比较两种类型的变化来完成的,即样本均值之间的变化,以及每个样本内部的变化。以下公式表示单向Anova测试统计数据。
ANOVA公式的结果,即F统计量(也称为F比率),允许对多组数据进行分析,以确定样本之间和样本内部的可变性。
单向ANOVA的公式可以这样写:
当我们绘制ANOVA表时,上面的所有组成部分都可以如下所示:
一般来说,如果与F相关联的p值小于0.05,则将拒绝原假设并支持替代假设。如果原假设被拒绝,我们可以得出结论,所有组的均值不相等。
注:如果被测组之间不存在真正的差异,也就是所谓的零假设,那么方差分析的F比统计结果将接近1。
ANOVA检验的假设
在进行方差分析之前,我们需要做一些假设:
- 从因子水平定义的总体中独立且随机地获得观察结果
- 每个因子水平的数据均呈正态分布
- 案例独立性:样本案例应相互独立
- 方差的同质性:同质性是指各组之间的方差应近似相等
方差同质性的假设可以用Levene检验或Brown-Forsythe检验来检验。分数分布的正态性可以用直方图、偏度和峰度值来检验,也可以用Shapiro-Wilk或Kolmogorov-Smirnov或Q-Q图来检验。独立性的假设可以根据研究设计来确定。
值得注意的是,方差分析对于假设独立性的违规行为并不强大。这就是说,即使你违反了同质性或正态性的假设,你也可以进行测试并基本相信结果。
但是,如果违反了独立性假设,方差分析的结果是无效的。一般来说,在违反同质性的情况下,如果具有相同大小的组,则分析被认为是可靠的。对于违反正态性的情况,如果样本量较大,继续进行方差分析通常是可以的。
方差分析检验类型
单向方差分析:单向方差分析只有一个自变量
- 例如,可以按国家/地区评估日冕案例的差异,并且一个国家可以将2个,20个或更多不同的类别进行比较
双向方差分析:双向方差分析(也称为因子方差分析)是指使用两个独立变量的方差分析
- 扩展上面的示例,双向方差分析可以按年龄组(独立变量1)和性别(独立变量2)检查日冕病例(因变量)的差异。双向方差分析可用于检查两个独立变量之间的相互作用。相互作用表明,自变量的所有类别之间的差异不是统一的
- 例如,老年组总体上可能比青年组具有更高的日冕病例,但是与欧洲国家相比,亚洲国家的差异可能更大(或更小)
N向方差分析:一个研究者也可以使用两个以上的自变量,这是一个N向方差分析(N是你拥有的自变量的数量),也就是MANOVA检验。
- 例如,可以同时按国家、性别、年龄组、种族等检查日冕病例的潜在差异
- 方差分析会给你一个单变量的f值,而方差分析会给你一个多变量的f值
有复制与无复制
你可能经常听到关于方差分析的复制和不复制。让我们了解这些是什么:
具有复制功能的双向ANOVA:两个小组和这些小组的成员所做的不只是一件事情
- 例如,假设尚未开发出针对COVID-19的疫苗,医生正在尝试两种不同的治疗方法来治愈两组感染COVID-19的患者
双向ANOVA(无复制):只有一个组并且对同一组进行双重测试时使用
- 例如,假设已为COVID-19开发了一种疫苗,研究人员正在对一组志愿者进行疫苗接种之前和之后的测试,以查看其是否有效
事后检验
当我们进行方差分析时,我们试图确定各组之间是否存在统计学上的显著差异。如果我们发现存在差异,则需要检查组差异的位置。
基本上,事后检验告诉研究者哪些组彼此不同。
此时,你可以运行事后检验,这是t检验,用于检验组之间的均值差异。可以进行多个比较测试来控制I型错误率,包括Bonferroni、Scheffe、Dunnet和Tukey测试。
现在,让我们用一些真实的数据来理解每种类型的方差分析测试,并使用Python。
Python中的单向方差分析测试
我从一个正在进行的Kaggle竞赛中下载了这些数据:https://www.kaggle.com/sudalairajkumar/covid19-in-india