Мы предполагаем, что вы хотите регрессировать против всех наборов из 3 переменных из 4 в X плюс управляющие переменные.
Кроме того, схема желаемого результата неясна, поэтому мы предположим, что вы хотите, чтобы коэффициенты каждой модели наряду с некоторыми другими неопределенными статистическими данными были использованы, и мы используем логарифмическую вероятность в качестве примера. Каждая выходная строка представляет результаты одного прогона модели с NA в каждой строке, показывающие, какой коэффициент не использовался.
Пакеты не используются.
# test data is the builtin mtcars as well as CONTROL, X and Y
CONTROL <- c("mpg", "cyl")
X <- c("hp","drat","wt","am")
Y <- "vs"
stats <- function(nm) {
fo <- reformulate(c(setdiff(X, nm), CONTROL), Y)
fm <- glm(fo, mtcars, family = binomial)
coefs <- c(coef(fm), setNames(NA, nm))[c("(Intercept)", X)]
c(coefs, logLik = logLik(fm)) # add other statistics to this line
}
do.call("rbind", lapply(X, stats))
, давая эту матрицу:
(Intercept) hp drat wt am logLik
[1,] 150.84593 NA -4.381111 2.242363 -62.74444 -2.338630e+00
[2,] 137.24734 -0.01079679 NA 1.209804 -60.16064 -2.826391e+00
[3,] 3285.91281 -6.54621462 -344.866970 NA -311.77291 -1.315947e-08
[4,] 84.76241 -0.49550208 -25.801081 24.231253 NA -3.863991e+00