Bornes inférieures non présentes dans Régression Logistique

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Xavier Lassau
Messages : 4
Enregistré le : 27 Mar 2017, 08:52

Bornes inférieures non présentes dans Régression Logistique

Messagepar Xavier Lassau » 27 Mar 2017, 11:36

Bonjour à tous,

Je cherche à effectuer une régression logistique via la fonction glm afin d'expliquer le "Status" de valeur 0 ou 1 en fonction de 4 variables (3 continues que je discrétise et une qualitative prenant les valeurs 1, 5 et 8), et à récupérer les différents coefficients de ma régression linéaire.

Ma régression linéaire s'effectue correctement sauf que pour toutes mes variables quali et quanti, aucunes de mes bornes inférieures ne sont prises en compte, i.e. je discrétise un ratio de la manière suivante: [0;40][40;80][80;120][120;inf] et la borne inférieure [0:40] n'apparait pas dans mes Estimate, idem pour les autres variables quanti et quali.

Code : Tout sélectionner

myVariableNames<-c("Vintage","Employment", "DTI", "CLTV","Status")

# lecture du fichier texte
Edwin <- read.csv2("path")

# ajout d'un identifiant (le no de ligne)
Edwin$Cle <- seq(1,nrow(Edwin))

Edwin$Status <- factor(Edwin$Status)

# transformation de l'ensemble des variables qualitatives en facteurs
varquali <- c("Employment")
indices <- names(Edwin) %in% varquali
for (i in (1:ncol(Edwin))) { if (indices[i] == 1) { Edwin[,i] <- factor(Edwin[,i]) } }

# liste des variables quantitatives
varquanti <- c("DTI", "CLTV","Vintage")


# Création d'un echantillon d'apprentissage et d'un échantillon de validation
id <- (1:nrow(Edwin))[which(runif(nrow(Edwin)) < 0.66)]
train  <- Edwin[id,]
valid  <- Edwin[-id,]

# discrétisation des variables continues
Edwin$Vintage <- cut(Edwin$Vintage,c(0,1,2,4,6,Inf), right=TRUE)
Edwin$DTI <- cut(Edwin$DTI,c(0,0.1,0.15,0.25,Inf), right=TRUE)
Edwin$CLTV <- cut(Edwin$CLTV,c(0,40,80,100,120,Inf), right=TRUE)

# Régression logistique
predicteurs <- -grep('(Cle|Status)', names(Edwin))
formule <- as.formula(paste("y ~ ( ",paste(names(Edwin2[,predicteurs]),collapse="+"),")^2"))
formule

# sélection de modèle ascendante
logit <- glm(Status~.,data=train,family=binomial(link = "logit"))
summary(logit)
# recherche maximale
selection <- step(logit,direction="forward",trace=TRUE,k = log(nrow(train)),
                  scope=list(upper=formule))
selection


> summary(selection)

Call:
glm(formula = Status ~ Vintage + Employment + DTI + CLTV, family = binomial(link = "logit"),
data = train)

Deviance Residuals:
Min 1Q Median 3Q Max
-0.3786 -0.1330 -0.1121 -0.0001 3.3750

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -51.103 4250.533 -0.012 0.990
Vintage(1,2] 17.069 3518.498 0.005 0.996
Vintage(2,4] 16.221 3518.498 0.005 0.996
Vintage(4,6] 16.597 3518.498 0.005 0.996
Vintage(6,Inf] 17.477 3518.498 0.005 0.996
Employment5 1.268 1.039 1.220 0.222
Employment8 -13.285 1945.866 -0.007 0.995
DTI(0.1,0.15] 14.097 1464.193 0.010 0.992
DTI(0.15,0.25] 14.341 1464.193 0.010 0.992
DTI(0.25,Inf] 14.348 1464.193 0.010 0.992
CLTV(40,80] -1.103 2047.920 -0.001 1.000
CLTV(80,100] 14.850 1882.376 0.008 0.994
CLTV(100,120] 15.474 1882.376 0.008 0.993
CLTV(120,Inf] 15.818 1882.376 0.008 0.993

Aucune de mes bornes inférieures n'a d'Estimate, à noter que la variable "Employment" prend la valeur 1 comme borne inférieure et bien que variable qualitative ne présente pas d'Estimate.

Merci beaucoup d'avance pour votre aide.

X.

Victor Cazalis
Messages : 68
Enregistré le : 24 Aoû 2014, 06:19

Re: Bornes inférieures non présentes dans Régression Logistique

Messagepar Victor Cazalis » 27 Mar 2017, 12:31

Bonjour,

Quand les variables explicatives sont discrètes, les coefficients des premières modalités sont contenues dans l'intercept, les autres sont les différences dues aux seconde, troisième, quatrième modalités. Vous avez donc tout pour calculer avec ce qu'il s'affiche. Une fonction R peut vous afficher tous les coefficients :

Code : Tout sélectionner

dummy.coef(selection)


Victor

Xavier Lassau
Messages : 4
Enregistré le : 27 Mar 2017, 08:52

Re: Bornes inférieures non présentes dans Régression Logistique

Messagepar Xavier Lassau » 27 Mar 2017, 12:37

Merci bien pour l'explication . Quel est l'intrérêt de le présenter sous cette forme ?
Y-a t il une option pour séparer les coefficients des premières modalités de l'Intercept et donc éviter qu'ils prennent comme valeur 0 ?

> dummy.coef(selection)
Full coefficients are

(Intercept): -50.14733
Vintage: [0,1] (1,2] (2,4] (4,6] (6,Inf]
0.00000 17.14411 16.31685 16.64143 17.80523
Employment: 1 5 8
0.00000 -15.69509 -13.40200
DTI: [0,0.1] (0.1,0.15] (0.15,0.25] (0.25,Inf]
0.00000 12.59862 13.81226 13.81451
CLTV: [0,40] (40,80] (80,100] (100,120] (120,Inf]
0.000000 -1.371683 14.764237 14.961941 15.327105

Eric Wajnberg
Messages : 776
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Re: Bornes inférieures non présentes dans Régression Logistique

Messagepar Eric Wajnberg » 27 Mar 2017, 15:51

Trois points :

En fait de "première modalité", c'est la première par ordre alphabétique. C'est l'option par défaut, ceci peut être changé.

Il n'y a pas d’intérêt à ce que la première modalité serve de référence. Ce n'est pas un choix. C'est lié au fait que - dans un glm en général - le modèle est par construction surdimensionné, et l'on ne peut donc pas estimer autant de paramètres de régression que de modalités. Il en faut une qui serve de référence, et qui passe effectivement dans l'intercept, avec un df final égale au nombre de modalités moins 1.

Il s'agit là d'une discussion de statistique qui est hors sujet ici, je pense.

HTH, Eric.

Victor Cazalis
Messages : 68
Enregistré le : 24 Aoû 2014, 06:19

Re: Bornes inférieures non présentes dans Régression Logistique

Messagepar Victor Cazalis » 27 Mar 2017, 17:32

J'ajoute juste à la réponse d'Eric que ce n'est pas l'effet de la première modalité qui est 0, l'effet de la première modalité est = intercept + 0. La seconde modalité a ici un coefficient de -50.14 + 17.14.

Il n'y a donc pas d'intérêt à ce que ce soit la première valeur qui soit contrainte d'avoir une différence d'effet nulle mais le coefficient final est le même peut importe quelle modalité on fixe.

Xavier Lassau
Messages : 4
Enregistré le : 27 Mar 2017, 08:52

Re: Bornes inférieures non présentes dans Régression Logistique

Messagepar Xavier Lassau » 28 Mar 2017, 08:25

Merci beaucoup pour vos eclaircissements.
Donc si je souhaite réutiliser mes coefficients calibrés, je dois à tous leur rajouter l'Intercept?

Victor Cazalis
Messages : 68
Enregistré le : 24 Aoû 2014, 06:19

Re: Bornes inférieures non présentes dans Régression Logistique

Messagepar Victor Cazalis » 28 Mar 2017, 09:40

Exactement


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité