繁体   English   中英

如何使用此特定数据集进行线性回归?

[英]How to do linear regression with this particular data set?

我有一个响应变量y
我还有5个因变量的列表

x <- list(x1, x2, x3, x4, x5)

最后,我有一个长度为5的逻辑向量z。例如

z <- c(TRUE, TRUE, FALSE, FALSE, TRUE)  

鉴于此,我希望R自动执行线性回归

lm(y ~ x1 + x2 + x5)

基本上,TRUE / FALSE对应于是否包括因变量。
我无法做到这一点。
我尝试做lm(y ~x[z])但是它不起作用。

你可以做

lm(y ~ do.call(cbind, x[z]))

do.call(cbind, x[z])会将x[z]转换为矩阵,这是lm可接受的输入格式。 这样做的一个问题是输出中的回归变量的名称(假设x是命名列表)有点混乱。 因此,您可以这样做

lm(y ~ ., data = data.frame(y = y, do.call(cbind, x[z])))

这将在输出中给出漂亮的名称(再次假设x是一个命名列表)。

在进行线性回归之前,请尝试将y绑定到data.frame或矩阵(cbind)。 您可以通过执行以下操作来过滤因变量:

x <- list(x1 = 1:5, x2 = 1:5, x3 = 1:10, x4 = 1:5, x5 = 1:5)
z <- c(TRUE, TRUE, FALSE, FALSE, TRUE)
b <- data.frame(x[which(z == TRUE)])

暂无
暂无

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

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