Bonjour,
Quelle est la proportion de porteurs (Oui) et de non porteurs (Non) de ta variable à expliquer?
Si il y a très peu de "Oui", alors prédire presque que des "Non" avec un seuil à 0.5 est tout à fait normal.
Tu dois faire une étude du nombre de bons et de mauvais classés dans chacun des cas "Oui" et "Non" basés sur les probabilités prédites par ta regression logistique et sur les seuils choisis.
En clair, il n'y a pas de "bon" seuil à choisir, c'est toi qui prend ce que tu veux (accorde tu plus d'importance à prédire à coup sur les "Oui" quitte à à avoir des faux positifs, ou l'inverse?)
Je t'invite à te renseigner sur les les techniques de scoring, et en particulier sur les "matrices de confusion" et les "courbes ROC" qui permettent de bien comprendre comment appréhender le problème (mais tout ca relève de la statistique et plus trop de R).
Comment faire ca en R?
predict(object, newdata, type = "response")
renvoit la probabilité d'avoir Oui (et pas une prédiction binaire "Oui", "Non").
Une fois que tu as la probabilité, tu peux faire une fonction qui dépend du seuil que tu choisis, qui prends en input les probabilités, et qui te renvoit la matrice de confusion.
Codée à l'arrache pour te donner un point de départ, ca ressemble à:
1 2 3 4 5 6 7 8 9
| Confusion<-function(s=seuil,p=probabilites,d=ton vecteur de valeurs "Oui" "Non" reelles)
{
Vrai.Positif<-length(p[d=="Oui" & p>s])
Faux.Positif<-length(p[d=="Non" & p>s])
Vrai.Negatif<-length(p[d=="Non" & p<s])
Faux.Negatif<-length(p[d=="Oui" & p<s])
return(list(Vrai.Positif,Faux.positif,etc...))
} |
Tu peux aussi diviser chacun de ses effectifs par le nombre total d'individus, ou par le nombre de positifs.. etc pour interpréter en taux d'erreur sur tes deux classes.
A la vue de ta matrice de confusion, tu pourras choisir un seuil approprié ou découper ton score en différentes classes de risques comme il est d'usage en scoring.
Partager