R中的线性回归,具有可变数量的解释变量

时间:2011-11-16 19:35:28

标签: r linear-regression glm

  

可能重复:
  Specifying formula in R with glm without explicit declaration of each covariate
  how to succinctly write a formula with many variables from a data frame?

我有一个Y值向量和一个X值矩阵,我想对它进行多元回归(即Y = X [列1] + X [列2] + ... X [列N])

问题是我的矩阵(N)中的列数未预先指定。我知道在R中,为了执行线性回归,你必须指定等式:

fit = lm(Y~X[,1]+X[,2]+X[,3])

但如果我不知道X矩阵中有多少列,我该怎么做呢?

谢谢!

1 个答案:

答案 0 :(得分:15)

三种方式,提高灵活性。

方法1

使用公式表示法运行回归:

fit <- lm( Y ~ . , data=dat )

方法2

将所有数据放在一个data.frame中,而不是两个:

dat <- cbind(data.frame(Y=Y),as.data.frame(X))

然后使用公式表示法运行回归:

fit <- lm( Y~. , data=dat )

方法3

另一种方法是自己建立公式:

model1.form.text <- paste("Y ~",paste(xvars,collapse=" + "),collapse=" ")
model1.form <- as.formula( model1.form.text )
model1 <- lm( model1.form, data=dat )

在此示例中,xvars是一个包含要使用的变量名称的字符向量。