Я поместил модель логистической регрессии в набор данных titanic
, который состоит из нескольких категориальных переменных.
surv.glm= glm(survived ~ class + age + sex, data=titanic, family=binomial)
Coefficients:
(Intercept) class2nd class class3rd class ageadults sexman
3.062 -1.011 -1.766 -1.056 -2.369
часть данных:
class age sex survived
1st class adults man yes
1st class adults man yes
Есть три класса (1-й2-й и 3-й) в данных.В поле class
есть уровень crew
, но, похоже, он не отображается в данных.Итак, два нуля для 2-го и 3-го классов должны указывать 1-й класс.
Вопрос:
Найти вероятность выживания для всех возможных случаев в титаническом инциденте.Сортируйте их по вероятности выживания.Автоматизируйте процесс настолько, насколько это возможно.
На основе коэффициентов модели я написал этот код:
predict_surv = function(class_2nd, class_3th, age_adult,sex_man) {
surv=3.062-1.011*class_2nd-1.766*class_3th-1.056*age_adult-2.369*sex_man
odd = exp(surv)
p = odd / (1 + odd)
return(p)
}
i <- 1
for (class2nd in c(0,1))
for (class3th in c(0,1))
for (adult in c(0,1))
for (sex in c(0,1)) {
pr[[i]] = predict_surv(class2nd,class3th,adult,sex)
i <- i+1
}
pr = sort(pr,decreasing = T)
print(pr)
Это работает, но я хотел бы напечатать фактическую этикеткудля каждой комбинации категориальных переменных в выводе.Как я могу сделать это в эффективном и стандартном решении с R?