R-比较在几个DV上运行的简单回归模型
假设您在R中有以下代码:R-比较在几个DV上运行的简单回归模型,r,regression,linear-regression,R,Regression,Linear Regression,假设您在R中有以下代码: model1 <- lm(cbind(DV1, DV2, DV3) ~ IV1 + IV2, data) 为了测试是否存在交互,我通常会使用: anova(model1, model2) 然而,这只返回一个p值,而我期望有三个p值-一个用于DV1,一个用于DV2,一个用于DV3。如何才能实现我正在尝试的目标?如果单独完成,我们可以使用Map model1n <- lapply(c('mpg', 'disp'), function(x) lm(r
model1 <- lm(cbind(DV1, DV2, DV3) ~ IV1 + IV2, data)
为了测试是否存在交互,我通常会使用:
anova(model1, model2)
然而,这只返回一个p值,而我期望有三个p值-一个用于
DV1
,一个用于DV2
,一个用于DV3
。如何才能实现我正在尝试的目标?如果单独完成,我们可以使用Map
model1n <- lapply(c('mpg', 'disp'), function(x)
lm(reformulate(response = x, 'cyl + am'), data = mtcars))
model2n <- lapply(c('mpg', 'disp'), function(x)
lm(reformulate(response = x, 'cyl * am'), data = mtcars))
Map(anova, model1n, model2n)
model1n我想你需要Map(方差分析,model1,model2)
如果你这样做,Map
会起作用的model1n@akrun谢谢,这很有效!我建议加上它作为答案,这样我就可以接受了
model1n <- lapply(c('mpg', 'disp'), function(x)
lm(reformulate(response = x, 'cyl + am'), data = mtcars))
model2n <- lapply(c('mpg', 'disp'), function(x)
lm(reformulate(response = x, 'cyl * am'), data = mtcars))
Map(anova, model1n, model2n)