首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分组变量的t检验

分组变量的t检验
EN

Stack Overflow用户
提问于 2013-12-13 04:51:50
回答 2查看 11.5K关注 0票数 0

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

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

t.test(age~group)

但是,有没有一种方法可以用一段代码测试所有35个变量,而不是逐个测试?

EN

回答 2

Stack Overflow用户

发布于 2013-12-13 05:04:04

示例数据帧:

代码语言:javascript
复制
dat <- data.frame(age = rnorm(10, 30), body = rnorm(10, 30), 
                  weight = rnorm(10, 30), group = gl(2,5))

您可以使用lapply

代码语言:javascript
复制
lapply(dat[1:3], function(x) 
                   t.test(x ~ dat$group, paired = TRUE, na.action = na.pass))

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

票数 5
EN

Stack Overflow用户

发布于 2013-12-13 06:09:51

Sven为您提供了一种很好的方法来实现您想要实现的功能。然而,我想警告你关于你正在做的事情的统计方面。

回想一下,如果您使用0.05的标准置信水平,这意味着对于每个执行的t测试,您有5%的机会犯类型1错误(错误地拒绝零假设)。根据概率定律,运行35个单独的t测试将你犯类型1错误的概率增加35倍,或者更准确地说:

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

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

仅供参考。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20553995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档