Отдельные логистические модели в рамках датафрейма

У меня есть набор данных с 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))
  )
}
Другие вопросы по тегам