У меня есть фрейм данных (myvar
) с именами столбцов от act1_1 до act1_144(dependent variable
), заполненный числовыми значениями, и 7 столбцов с социально-демографическими данными, DVAge, DVHsize, dhhtype, deconact, Income, NumChild и Rooms (independent variables
).
independents<-DVType[, 1:144]
dependents<-DVType[, 145:151]
myvar<-cbind(dependents,independents)
Я пытаюсь создать модель линейной регрессии, используя переменные социально-демографических столбцов и пробуя все возможные комбинации, такие как доход, доход + номер ребенка, доход + комнаты,..., dhhtype + deconact.... У меня проблемы с созданием комбинаций с фреймом данных.
Что мне удалось сделать, так это регрессировать зависимые переменные на независимую переменную.
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
....
Как можно расширить это, чтобы идентифицировать все комбинации?
Если я правильно понимаю, ваша формула неверна,
вашими предикторами (independents
) должны быть 7 столбцов, которые вы упомянули.
Я не уверен, что "все возможные комбинации" - это именно то, что вам нужно,
может быть, вам нужны только взаимодействия второго порядка (и никакого перехвата из-за -1
)?
В этом случае вы, вероятно, можете сделать следующее
(см. также этот вопрос):
fit <- lm(sprintf("cbind(%s) ~ . ^ 2 - 1",
toString(paste("act1", 1:144, sep = "_"))),
data = DVType)