Bonjour tout le monde,
Encore un petit souci de compréhension d'un warning en utilisant la fonction glm pour faire une régression logistique.
Voici le message d'avis :
1 2
| Message d'avis :
glm.fit: des probabilités ont été ajustées numériquement à 0 ou 1 |
Voici le code rentré :
modele.test<-glm(VarCible~., data = datafit[,-c(4)],family = binomial)
et lorsque je fais le résumé de la sortie du modèle :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| summary(modele.test)
Call:
glm(formula = VarCible ~ ., family = binomial, data = datafit[,
-c(4)])
Deviance Residuals:
Min 1Q Median 3Q Max
-2.2726 -0.1211 -0.0531 -0.0247 4.1806
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.543e+01 1.394e+02 -0.111 0.9119
X1-1A 9.706e+00 1.394e+02 0.070 0.9445
X1+1A 7.614e+00 1.394e+02 0.055 0.9565
X1-1J 1.316e+01 1.394e+02 0.094 0.9248
X1-1M 1.213e+01 1.394e+02 0.087 0.9307
X1-1S 1.295e+01 1.394e+02 0.093 0.9260
X1-2M 1.197e+01 1.394e+02 0.086 0.9316
X1-2S 1.273e+01 1.394e+02 0.091 0.9273
X1-3J 1.293e+01 1.394e+02 0.093 0.9261
X1-5J 1.265e+01 1.394e+02 0.091 0.9277
X1-6M 1.099e+01 1.394e+02 0.079 0.9372
X2 1.195e-03 2.766e-04 4.320 1.56e-05 ***
X3 2.728e-03 3.685e-04 7.404 1.33e-13 ***
X4 -1.655e-02 8.084e-03 -2.047 0.0407 *
X5 -3.679e-01 8.473e-02 -4.342 1.41e-05 ***
X6+1an 7.515e-03 8.318e-02 0.090 0.9280
X6-3mois 2.238e-01 1.051e-01 2.129 0.0332 *
X6-6mois 1.580e-01 9.632e-02 1.640 0.1010
X6-9mois 1.361e-01 9.796e-02 1.389 0.1647
X7 4.710e-01 2.294e-02 20.537 < 2e-16 ***
X8 -4.080e-01 6.410e-02 -6.365 1.95e-10 ***
X9 -8.374e-04 1.185e-04 -7.069 1.56e-12 ***
X10 -2.845e-04 3.374e-04 -0.843 0.3991
X11 1.491e-01 2.931e-02 5.085 3.67e-07 ***
X12 6.372e-02 1.331e-01 0.479 0.6322
X13 2.915e-02 4.291e-02 0.679 0.4969
X14 1.769e-03 7.032e-03 0.252 0.8014
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 17510 on 190429 degrees of freedom
Residual deviance: 13471 on 190403 degrees of freedom
AIC: 13525
Number of Fisher Scoring iterations: 14 |
où forcément j'ai des probabilités très très proches de 1.
En faisant la régression logistique sur chacune des variables j'obtiens le même message d'avis quand je le fais par rapport aux variables X8, X9, X10 dont voici le résumé statistique :
1 2 3 4 5 6 7 8
| summary(datafit[,10:12])
X8 X9 X10
Min. : 0.250 Min. : 0.40 Min. : 0.40
1st Qu.: 1.000 1st Qu.: 30.02 1st Qu.: 27.51
Median : 1.000 Median : 62.71 Median : 49.90
Mean : 1.423 Mean : 250.71 Mean : 117.78
3rd Qu.: 1.000 3rd Qu.: 156.26 3rd Qu.: 99.53
Max. :59.000 Max. :94365.00 Max. :12305.50 |
Qui sont des variables très dispersées ... le problème peut il venir de là?
Sachant que je ne peux virer les valeurs extrêmes (car pas aberrantes) dois-je découper ces variables en classes? Standardiser?
Et voici la tête de ma variable cible (qui est bien binomiale):
1 2
| levels(VarCible)
[1] "NON" "OUI" |
Le max ... qui ne marche pas (logique c'est un facteur?)
1 2 3
| max(VarCible)
Erreur dans Summary.factor(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, :
max ceci n'est pas pertinent pour des variables facteurs |
1 2 3
| summary(VarCible)
NON OUI
188931 1499 |
Si quelqu'un a une idée ... car là (encore) je bloque niveau interprétation
Cordialement,
Hollow
-- EDIT :
Après découpage en classes (d'effectifs égaux) je n'ai plus le même problème ... une piste à priori?
Partager