我的数据集如下所示
test<-read.csv("data.csv",sep=",",header=T)
有10个预测变量。第一列是响应变量
x<-test[,-c(1)]
y<-test[,1]
如果我想测试一个包含前三个预测变量的模型,包括它们的交互项,那么我就是用lm
test.model<-lm(y~x[,1]*x[,2]*x[,3], data=test)
但事实证明,生成的模型还包含x[, 1]:x[, 2]:x[, 3]
的交互项。如何仅使用两个因素交互来限制模型,例如x[, 1]:x[, 2]
,x[, 2]:x[, 3]
和{ {1}}
如果我想考虑所有10个预测变量,而不是写x[, 1]:x[, 3]
,是否有方便的方法来编写这个公式?
答案 0 :(得分:0)
您可以指定与^
的最高互动顺序。
y ~ (x[,1] + x[,2] + x[,3]) ^ 2
导致所有双变量相互作用和主效应。
答案 1 :(得分:0)
两点。如果您还要提供数据参数,则将预测变量和响应提取为单独的项是没有意义的。在最坏的情况下,它会在奇怪的时刻开始失败,但至少会让你的合作者感到困惑。如果您有有意义的列名,那么解释起来会很容易。
正如斯文所指出的,你可以使用&#34; ^&#34;公式运算符,这意味着与取幂完全不同的东西。我很确定这是一个重复的问题,所以现在会进行一些搜索。