使用分组变量进行T检验

时间:2013-12-12 20:51:50

标签: r statistics grouping

我有一个包含36个变量和74个观测值的数据框。我想通过1个分组变量(有两个级别)对35个变量进行两个样本配对测试。

例如:数据框包含“年龄”“体重”和“组”变量。 现在我想我可以使用以下代码对每个变量进行ttest:

t.test(age~group)

但是,有没有办法用一个代码测试所有35个变量,而不是逐个测试?

2 个答案:

答案 0 :(得分:5)

示例数据框:

dat <- data.frame(age = rnorm(10, 30), body = rnorm(10, 30), 
                  weight = rnorm(10, 30), group = gl(2,5))

您可以使用lapply

lapply(dat[1:3], function(x) 
                   t.test(x ~ dat$group, paired = TRUE, na.action = na.pass))

在上面的命令中,1:3表示包含变量的列数。参数paired = TRUE是执行配对t检验所必需的。

答案 1 :(得分:4)

Sven为您提供了实施您希望实施的内容的绝佳方式。但是,我想警告你关于你正在做的事情的统计方面。

回想一下,如果你使用0.05的标准置信水平,这意味着对于每次执行的t检验,你有5%的机会犯下1型错误(错误地拒绝原假设)。根据概率定律运行35个单独的t检验可以将你输入1型错误的概率提高35倍,或更准确地说:

Pr(类型1错误)= 1 - (0.95)^ 35 = 0.834

意味着你有大约83.4%的机会错误地拒绝零假设。基本上这意味着,通过运行如此多的T检验,至少有一个T检验可能会提供不正确的结果。

仅供参考。