J'ai créé une régression logistique en utilisant le code suivant:
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)
J'ai ensuite utilisé la sortie pour créer un modèle final:
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)
Ensuite, j'ai prédit les résultats pour un autre ensemble de données en utilisant la fonction de prédiction:
log.pred.f.v <- predict(final.model.f, newdata=LOG_V)
J'ai pu utiliser établir une courbe ROC agréable et créé un tableau pour établir la sensibilité et la spécificité qui me donne les réponses que j'attendrais.
Cependant, ce que j'essaie de faire, c'est d'établir pour chaque ligne de données quelle est la probabilité que Ft_45 soit 1. Si je regarde la sortie de log.pred.fv, j'obtiens, par exemple:
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
Comme je n'ai qu'une compréhension provisoire de ce que je fais, j'ai du mal à comprendre comment interpréter les valeurs négatives et supérieures à 1 car je m'attendrais à ce qu'une probabilité se situe entre 0 et 1.
Ma question est donc de savoir s'il me manque une étape où je dois transformer la sortie ou si je me suis complètement trompé. Merci d'avance pour toute aide que vous pouvez offrir.
la source
probs <- exp(predict(logit, type = "response" , newdata=data)
ou au moins `probs <- 1 / (1 + exp (-pred))En regardant la documentation de la
predict.glm
, il semble que c'est aussi simple que d'utiliser un paramètre supplémentaire dans l'predict
appel:Voir documentation:
la source