Отдельные логистические модели в рамках датафрейма
У меня есть набор данных с 3240 наблюдениями в 16 разных странах. Я хотел бы запустить 16 отдельных логистических моделей для каждой страны, так как я ожидаю, что влияние моей предикторной переменной будет различным в разных странах.
Data <- data.frame(
X = sample(1:100),
Y = sample(c("yes", "no"), 100, replace=TRUE),
country=sample(c("UK","USA","Denmark","Norway","Iceland","Ireland","Sweden","Italy","France","Germany","Luxembourg","Belgium","Netherlands","Spain","Portugal","Greece"),100, replace=TRUE))
Как это сделать в R?
1 ответ
Конечно вы можете. В зависимости от вашего основного вопроса, другие подходы могут быть более подходящими (например, модель со смешанным эффектом).
Следующие два примера эквивалентны. Вы можете добавить мясо к нему (например, извлекая коэффициенты).
sapply(Data$country, FUN = function(ctry) {
summary(glm(Y ~ X, data = Data, family = binomial, subset = country == ctry))
}, simplify = FALSE) # if simplify = FALSE, it is coerced to a matrix
for (ctry in Data$country) {
print( # print has to be called explicitly inside a for loop
summary(glm(Y ~ X, data = Data, family = binomial, subset = country == ctry))
)
}