Ваша первая модель glm НЕ является логистической c регрессией, поскольку вы не включили аргумент семейства и не указали "binomial".
lr = glm(a_fac~d) # Error!
Ошибка вызвана тем, что R пытается выполнить линейную регрессию на нечисловой c результат. Правильная команда должна быть:
lr = glm(a_fac~d, family=binomial(link="logit"))
При построении графиков факторы рассматриваются как целые числа, начиная с 1 для первого уровня. Поэтому, если вы хотите использовать 0 и 1 для оси y, но иметь прикрепленные метки, используйте a
версию своего вектора результатов, подавьте метки галочек (yaxt="n"
), а затем добавьте ось со своими собственными этикетки.
plot(d, a, main = "logistic regression", yaxt="n", ylab="Outcome")
lines(d, lr2$fitted.values, col="red")
axis(side=2, at=c(0,1), labels=levels(a_fac), las=1)