Я создал логистическую регрессию, используя следующий код:
full.model.f = lm(Ft_45 ~ ., LOG_D)
base.model.f = lm(Ft_45 ~ IP_util_E2pl_m02_flg)
step(base.model.f, scope=list(upper=full.model.f, lower=~1),
direction="forward", trace=FALSE)
Затем я использовал выходные данные для создания окончательной модели:
final.model.f = lm(Ft_45 ~ IP_util_E2pl_m02_flg + IP_util_E2_m02_flg +
AE_NumVisit1_flg + OP_NumVisit1_m01_flg + IP_TotLoS_m02 +
Ft1_45 + IP_util_E1_m05_flg + IP_TotPrNonElecLoS_m02 +
IP_util_E2pl_m03_flg + LTC_coding + OP_NumVisit0105_m03_flg +
OP_NumVisit11pl_m03_flg + AE_ArrAmb_m02_flg)
Затем я предсказал результаты для другого набора данных с помощью функции предикторов:
log.pred.f.v <- predict(final.model.f, newdata=LOG_V)
Я смог установить приятную кривую ROC и создал таблицу для определения чувствительности и специфичности, которая дает мне ответы, которые я ожидаю.
Однако то, что я пытаюсь сделать, это установить для каждой строки данных, какова вероятность того, что Ft_45 равен 1. Если я посмотрю на вывод log.pred.fv, я получу, например,:
1 -0.171739593
2 -0.049905948
3 0.141146419
4 0.11615669
5 0.07342591
6 0.093054334
7 0.957164383
8 0.098415639
.
.
.
104 0.196368229
105 1.045208447
106 1.05499112
Поскольку у меня есть только предварительное представление о том, что я делаю, я изо всех сил пытаюсь понять, как интерпретировать отрицательные и более высокие значения, чем 1, так как я ожидаю, что вероятность будет между 0 и 1.
Поэтому мой вопрос: я просто пропустил шаг, на котором мне нужно преобразовать вывод, или я ошибся. Заранее благодарю за любую помощь, которую вы можете предложить.
источник
probs <- exp(predict(logit, type = "response" , newdata=data)
или, по крайней мере, `пробников <- 1 / (1 + exp (-pred))Глядя на документацию
predict.glm
, кажется, что это так же просто, как использование дополнительного параметра вpredict
вызове:Смотрите документацию:
источник