第十九讲 F检验:两样本方差比较
在“R与生物统计专题”中,我们会从介绍R的基本知识展开到生物统计原理及其在R中的实现。以从浅入深,层层递进的形式在投必得医学公众号更新。
F检验是用于评估两个总体(A和B)的方差(数值间变异程度)是否相等。
两样本t检验(第十讲 R-两独立样本t检验)时检查两个样本的方差是否相等;
将新的测量方法与旧的测量方法的可变性(变异程度)进行比较。比如,新方法是否减少了措施的可变性,增加的措施的结果稳定性?
典型的研究问题是:
A组的方差(σ2A)等于 B组的方差(σ2B)?
A组的方差(σ2A)小于 B组的方差(σ2B)?
A组的方差(σ2A)大于 B组的方差(σ2B)?
在统计数据中,我们可以定义相应的原假设(H0H0) 如下:
H0:σ2A = σ2B
H0:σ2A ≤ σ2B
H0:σ2A ≥ σ2B
相应的替代假设(H1)如下:
H1:σ2A ≠ σ2B (不同)
H1:σ2A > σ2B (大于)
H1:σ2A < σ2B (小于)
假设1)称为两向检验
假设2)和3)称为单向检验
可以通过计算两个方差(S2A和S2B)之比来获得检验统计量。
分子的自由度是 nA - 1,分母的自由度是nB - 1。
该比率偏离1的越多,则总体方差不相等的证据就越强。
F检验要求两个样本均呈正态分布。请参看第六讲 R-数据正态分布检验
4.1 R函数
R函数var.test()可用于比较两个方差,如下所示:
# 方法1
var.test(values ~ groups, data,
alternative = "two.sided")
# 方法2
var.test(x, y, alternative = "two.sided")
x,y:数值向量
alternative:备择假设。允许值为“two.sided”(默认),“greater”或“less”之一。
4.2 将数据导入R中
在这里,我们将使用名为ToothGrowth的内置R数据集。它包含一项评估维生素C对豚鼠牙齿生长的影响的研究数据。
实验在60只豚鼠上进行,其中每只豚鼠通过两种递送方法(橙汁,OJ,或抗坏血酸,VC)分别接受三种剂量水平的维生素C量(0.5、1和2 mg /天, VC)。实验者测量了牙齿生长的长度,数据示例如下所示。
# 导入R内自带的ToothGrowth数据集
library(datasets)
data(ToothGrowth)
# 将数据存储在变量my_data中
my_data <- ToothGrowth
4.3 检查数据
head(my_data)
输出结果
len supp dose
1 4.2 VC 0.5
2 11.5 VC 0.5
3 7.3 VC 0.5
4 5.8 VC 0.5
5 6.4 VC 0.5
6 10.0 VC 0.5
table(my_data$supp,my_data$dose)
输出结果
0.5 1 2
OJ 10 10 10
VC 10 10 10
研究问题:我们要在“supp”列中检验长度len在OJ和VC之间的方差是否相等。
4.4 初步检查F检验假设
F检验对于偏离正常假设非常敏感。在使用F检验之前,您需要检查数据是否正态分布(第六讲 R-数据正态分布检验)。
Shapiro-Wilk检验可用于检验正态性假设是否成立。也可以使用QQ图(分位数图)以图形方式评估变量的正态性。QQ图绘制了给定样本与正态分布之间的相关性。
如果对正态性不满足,更好的选择是使用Levene检验或Fligner-Killeen检验,它们对偏离正态性的假设这点不太敏感。
以上检验可以参考第六讲和第十五讲(第六讲 R-数据正态分布检验,第十五讲 R-单因素方差分析2),我们在下一讲会更加系统的对这几个检验进行详细解说。
4.5 计算F检验
res.ftest <- var.test(len ~ supp, data = my_data)
res.ftest
输出结果
F test to compare two variances
data: len by supp
F = 0.6386, num df = 29, denom df = 29, p-value = 0.2331
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.3039488 1.3416857
sample estimates:
ratio of variances
0.6385951
4.6 结果解释
F检验的P值为p = 0.2331,比显着性水平0.05大。可以得出结论,牙齿长度在OJ和VC两种补充方式之间的方差没有显着差异。
4.7 访问var.test()函数返回的值
函数var.test()返回包含以下组件的列表:
statistic:F检验统计量的值。
Parameter:检验统计量的F分布的自由度。
p.value:检验的p值。
conf.int:总体方差比率的置信区间。
estimate:样本方差的比率
用于获取这些值的R代码的格式如下:
res.ftest$estimate
ratio of variances
0.6385951
res.ftest$p.value
[1] 0.2331433
好了,本期讲解就先到这里。小伙伴们赶紧试起来吧。
当然啦,R语言的掌握是在长期训练中慢慢积累的。一个人学习太累,不妨加入“R与统计交流群”,和数百位硕博一起学习。
快扫二维码撩客服,
带你进入投必得医学交流群,
让我们共同进步!
↓↓
- END -
长按二维码关注「投必得医学」,更多科研干货在等你!