我有一个数据框(myvar
),其名称从act1_1到act1_144(dependent variable
)填充了数值,并在7列中分别包含了社会人口统计信息,DVAge,DVHsize,dhhtype,去模拟,收入,NumChild和Rooms(independent variables
)。
independents<-DVType[, 1:144]
dependents<-DVType[, 145:151]
myvar<-cbind(dependents,independents)
我正在尝试使用社会人口列变量来生成线性回归模型,并尝试所有可能的组合,例如收入,收入+子代数,收入+房间,...,dhhtype +去构图....无法生成与数据框的组合。
我设法做的是将自变量回归到自变量上。
fit<-lm(as.matrix(dependents) ~ -1 + model.matrix(~ ., data = independents ))
require(broom)
summary(fit)
Output:
Response DVHsize :
Call:
lm(formula = DVHsize ~ -1 + model.matrix(~., data = independents))
Residuals:
Min 1Q Median 3Q Max
-3.1356 -1.0056 -0.2886 0.9597 7.2341
Coefficients:
Estimate Std. Error t value Pr(>|t|)
model.matrix(~., data = independents)(Intercept) 3.616e+00 4.300e-02 84.096 < 2e-16 ***
model.matrix(~., data = independents)act1_1 -2.788e-05 2.911e-05 -0.958 0.33822
model.matrix(~., data = independents)act1_2 3.703e-05 2.898e-05 1.278 0.20138
model.matrix(~., data = independents)act1_3 -4.458e-06 2.177e-05 -0.205 0.83773
model.matrix(~., data = independents)act1_4 2.120e-05 2.557e-05 0.829 0.40705
model.matrix(~., data = independents)act1_5 2.327e-05 2.724e-05 0.854 0.39296
model.matrix(~., data = independents)act1_6 -4.578e-05 2.299e-05 -1.991 0.04644 *
model.matrix(~., data = independents)act1_7 2.087e-05 1.971e-05 1.058 0.28985
model.matrix(~., data = independents)act1_8 -4.694e-06 2.019e-05 -0.233 0.81612
model.matrix(~., data = independents)act1_9 3.604e-06 1.756e-05 0.205 0.83738
model.matrix(~., data = independents)act1_10 -2.924e-06 1.685e-05 -0.174 0.86225
model.matrix(~., data = independents)act1_11 4.934e-06 1.671e-05 0.295 0.76782
....
如何扩展它以识别所有组合?
答案 0 :(得分:1)
如果我理解正确,则您的公式有误,
您的预测变量(independents
)应该是您提到的7列。
我不确定“所有可能的组合”是否正是您想要的,
也许您只想要二阶交互(并且由于-1
而没有拦截)?
在这种情况下,您可以执行以下操作
(另请参见this question):
fit <- lm(sprintf("cbind(%s) ~ . ^ 2 - 1",
toString(paste("act1", 1:144, sep = "_"))),
data = DVType)