繁体   English   中英

R中的N向ANOVA

[英]N-way ANOVA in R

我需要一些帮助来执行R中的N向ANOVA,以捕获不同因素之间的相互依赖性。 在我的数据中,大约有100个不同的因素,我正在使用以下代码执行ANOVA。

model.lm<-lm(y~., data=data)
anova(model.lm)

据我所知(可能是我错了),它仅对每个因子执行1向ANOVA。 由于某些原因,我需要在所有100个组之间(即从x1到x100)执行N次方差分析。 我是否需要像下面这样指定每个因素,或者为此有一个简写形式?

model.lm<-lm(y~x1*x2*x3....,x100, data=data)
anova(model.lm)

您可以使用update.formula~(.)^n表示法。

例如,对于包含4个变量abcd 3向交互作用的模型

update(~a+b+c+d, ~(.)^3)


## ~a + b + c + d + a:b + a:c + a:d + b:c + b:d + c:d + a:b:c + a:b:d + a:c:d + b:c:d

因此,对于您要适合100次交互的示例,我建议考虑一个更合适的模型(尤其是在该考虑的时候)。

如果您决定继续使用基本的ANOVA方法,则可以执行以下操作(并等待R因大型数据/不合适的模型而导致内存问题而崩溃)。

xvars <- paste0('x',1:100)
oneway <- reformulate(termlabels=  xvars, response = 'y')


horribleformula <- update(oneway, . ~ (.)^100)

horriblemodel <- lm(horribleformula, data=data)

或者(感谢@Dason接过)

 stillhorrible <- lm(y ~ .^100, data = data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM