Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Les posteurs les plus actifs de la semaine
Aucun utilisateur

Le Deal du moment : -17%
Casque de réalité virtuelle Meta Quest 2 ...
Voir le deal
249.99 €

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

+2
Ayana
Eric Wajnberg
6 participants

Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Dim 2 Aoû 2015 - 11:18

Bonjour,

J'ai l'exemple bidon suivant :

case yes no
a 25 1
b 30 0
c 0 20

Je veux comparer le pourcentage de "yes" entre les trois cas. J'ajuste une régression logistique (lien logit) sur mes données et je fais ça sous R :

Code:
> mod=glm(cbind(yes,no)~case,family=binomial)
> summary(mod)

Call:
glm(formula = cbind(yes, no) ~ case, family = binomial)

Deviance Residuals:
[1]  0  0  0

Coefficients:
             Estimate Std. Error z value Pr(>|z|)  
(Intercept)     3.219      1.020   3.156   0.0016 **
caseb          22.918  52455.363   0.000   0.9997  
casec         -28.971  52998.328  -0.001   0.9996  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 8.1118e+01  on 2  degrees of freedom
Residual deviance: 5.2935e-10  on 0  degrees of freedom
AIC: 7.961

Number of Fisher Scoring iterations: 22

> anova(mod,test="Chisq")
Analysis of Deviance Table

Model: binomial, link: logit

Response: cbind(yes, no)

Terms added sequentially (first to last)


     Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
NULL                     2     81.118              
case  2   81.118         0      0.000 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

J'ai (évidement) un bel effet du facteur "case".

Bien sur, puisque certaines probabilités observées sont soit 0.0 soit 1.0, les logits correspondant sont (en valeur absolue) très élevés, ce qui explique les paramètres estimés et surtout leur SE.

Ensuite, évidement, je suis parti sur des comparaisons multiples (e.g., avec la fonction glht() du package multcomp de R), pour voir où étaient les différences. J'obtiens ceci :

Code:
> summary(glht(mod, linfct = mcp(case = "Tukey")))

         Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: glm(formula = cbind(yes, no) ~ case, family = binomial)

Linear Hypotheses:
           Estimate Std. Error z value Pr(>|z|)
b - a == 0    22.92   52455.36   0.000        1
c - a == 0   -28.97   52998.33  -0.001        1
c - b == 0   -51.89   74568.01  -0.001        1
(Adjusted p values reported -- single-step method)


Et aucune différence n'apparait alors comme significative, loin s'en faut. Cependant le raport de vraisemblance du modèle est de 81.1 sur 2 df, et est donc très significatif. Il y a donc un problème (les cas "b" and "c" ne peuvent pas être autres que différents !). Les énormes SE des paramètres estimés sont évidement responsables de ce problème.

Comment peut-on résoudre une telle situation ?

Plus généralement, la question est : Comment doit-on traiter une procédure de comparaison de pourcentages avec un GLM (régression logistique) lorsqu'il y a des cas avec p=0.0 et/ou p=1.0 ?

Merci d'avance pour toute aide sur ce point.

Cordialement, Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Dim 16 Aoû 2015 - 7:52

Pour ceux que ca intéresse, j'ai fini par trouver la solution. Il faut modifier la fonction de lien, et partir sur une régression quasi-logistique. MacCullagh & Nelder en parlent dans leur bouquin. C'est un peu acrobatique à faire, mais - en insistant - on fini par y arriver.

Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Ayana Lun 17 Aoû 2015 - 8:13

Bonjour,

Je n'ai peut-être rien compris, mais le tableau que tu analyses est un tableau de contingence. Or, pour une régression logistique, il faut les données individuelles. Ici la régression considère que tu as 3 individus, donc c'est évident que les résultats soient étranges... Que cherches-tu à faire exactement?

Ayana
Ayana
Ayana

Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Lun 17 Aoû 2015 - 9:08

Ayana a écrit:Bonjour,

Je n'ai peut-être rien compris, mais le tableau que tu analyses est un tableau de contingence. Or, pour une régression logistique, il faut les données individuelles. Ici la régression considère que tu as 3 individus, donc c'est évident que les résultats soient étranges... Que cherches-tu à faire exactement?

Ayana

Oula.

Une régression logistique est une régression construite sur une vraisemblance calculée sur une distribution binomiale (ou quasibinomial). Ca permet (entre autre) de comparer des pourcentages, mais bien plus encore. Et donc, non, pour une régression logistique, on n'a pas le besoin d'avoir les données individuelles. Dit autrement, on peut facilement recalculer les données individuelles à partir du tableau que je fournie en exemple.

"L’étrangeté" des résultats (comme vous dites) n'est pas lié au fait qu'il n'ait que 3 situations (pas 3 individus!), mais au fait que p=0.0 ou p=1.0, ce qui pose problème dans l'espace logit.

On peut aussi considérer la régression logistique comme une méthode paramétrique permettant d'analyser des tables de contingence, voire à plus de deux dimensions.

Je vous invite à lire des ouvrages qui présentent ces méthodes, plus généralement le modèle linéaire généralisé.

Cordialement,

Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Ayana Lun 17 Aoû 2015 - 9:10

Alors comment expliquez vous les ddl dans ce cas-là? Dans le code, nulle part n'est précisé l'effectif...
Ayana
Ayana

Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Ayana Lun 17 Aoû 2015 - 9:55

Re-bonjour,

Voici un exemple qui illustre, sur vos données, la différence entre le même modèle sur votre tableau de contingence et sur les données individuelles correspondantes. On voit bien que R ne fait pas la même chose, en particulier en ce qui concerne le nombre de ddl :

Code:
#données individuelles
x=c(rep("a",26),rep("b",30),rep("c",20))
y=c(rep(1,25),0,rep(1,30),rep(0,20))
model=glm(y~x,family=binomial)
summary(model)
confint(model)

#Tableau de contingence
case=c("a","b","c")
yes=c(25,30,0)
no=c(1,0,20)
mod=glm(cbind(yes,no)~case,family=binomial)
summary(mod)
confint(mod)

D'autre part, sur l'exemple, il y a clairement un problème de manque d'overlap, d'où la sale tête des IC et le message d'erreur de R sur les fitted probabilities. Enfin, sur des données brutes comme celles-ci, ca n'a absolument aucun sens de faire un test statistique, une analyse descriptive suffit.
Ayana
Ayana

Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Lun 17 Aoû 2015 - 13:31

Avec R, pour une regression logistique, on peut rentrer les données soit sous forme agrégée (comme je le fais moi), et il faut un cbind pour déclarer la variable dépendante, soit sous forme avec une ligne par individu. Dans les deux cas, on retrouve la même chose (dans ce cas, par exemple, on retrouve la même intercept). C'est équivalent. C'est possible également dans d'autres progiciels de statistiques.

Je réponds à présent à vos questions:

Les ddl: On estime trois paramètres. Le ddl du modèle est 2. Où est le problème?

Où est précisé l'effectif? Nous sommes dans le cas binomial, l'effectif est calculé par le cbind, simplement.

R ne fait pas la même chose sur les deux modèles: Oui, car nous sommes justement dans le cas où le logit de 0.0 ou de 1.0 est à l'infini. Si ce n'était pas le cas, on retrouverait la même chose:

Code:
> ex01
  cas yes no
1   A   3  2
2   B   1  3
3   C   2  1
> attach(ex01)
> summary(glm(cbind(yes,no)~cas,family=binomial))

Call:
glm(formula = cbind(yes, no) ~ cas, family = binomial)

Deviance Residuals:
[1]  0  0  0

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
(Intercept)   0.4055     0.9129   0.444    0.657
casB         -1.5041     1.4720  -1.022    0.307
casC          0.2877     1.5275   0.188    0.851

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1.5876e+00  on 2  degrees of freedom
Residual deviance: 2.2204e-16  on 0  degrees of freedom
AIC: 11.473

Number of Fisher Scoring iterations: 4

>
> x
 [1] "a" "a" "a" "a" "a" "b" "b" "b" "b" "c" "c" "c"
> y
 [1] 1 1 1 0 0 1 0 0 0 1 1 0
> > summary(glm(y~x,family=binomial))

Call:
glm(formula = y ~ x, family = binomial)

Deviance Residuals:
     Min        1Q    Median        3Q       Max  
-1.48230  -0.90733   0.07099   1.01077   1.66511  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
(Intercept)   0.4055     0.9129   0.444    0.657
xb           -1.5041     1.4720  -1.022    0.307
xc            0.2877     1.5275   0.188    0.851

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 16.636  on 11  degrees of freedom
Residual deviance: 15.048  on  9  degrees of freedom
AIC: 21.048

Number of Fisher Scoring iterations: 4

>

Les paramètres estimés sont les mêmes, leur SE sont les mêmes, les (écarts de) déviance sont les mêmes, etc.

La sale tête des IC: Tout d'abord, ce ne sont pas des IC, mais des SE (1.96 fois plus petit, asymptotiquement). Par ailleurs, comme je l'explique dans mon post initial, leur sale tête est due au fait qu'on a le logit correspondant à l'infini, du coup l'algo d'ajustement à une montagne de valeurs (ou bien l'opposé de l'inverse de la dérivée seconde du Hessian, ce qui revient au même) possibles, conduisant à des SE bien trop fortes. C'est bien là l'origine de ma question. Il y a peut-être un problème d'overlap (quoi que), mais ce n'est pas le problème ici.

Ca n'a absolument aucun sens de faire un test statistique, une analyse descriptive suffit. Une analyse statistique descriptive ne replace en rien une analyse inférentielle ! Il faut pouvoir - entre autre - calculer un risque de première espèce ! C'est la base de toute démarche de test, et les revues internationales dans lesquelles je publie ne se contentent pas de simples paramètres statistiques descriptifs, même s'ils sont élaborés. Imaginez que cette étude concerne l'élaboration de nouvelles molécules anti-cancéreuses, qui soignent ou tuent les gens, croyez-vous qu'une analyse descriptive seule, sans inférence, suffirait ? Enfin, je l'ai dit dans mon post initial, il s'agit là d'un exemple bidon. D'autres exemples plus complexes poseraient le même problème que celui que je soulève ici, si une ou plusieurs modalités étaient à p=0.0 ou p=1.0.

Comme je l'ai signalé, j'ai fini par trouver comment contourner le problème en utilisant une autre fonction de lien, que j'ai du coder moi-même, comme suggéré dans le McCullagh & Nelder.

Cordialement, Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Ayana Lun 17 Aoû 2015 - 15:35

Bonjour,

Je suis d'accord pour l'estimation des paramètres. Je suis plus gênée en philosophie par l'absence de résidus émanant de la stratégie. Si l'on souhaite simplement estimer les paramètres, ok. En revanche, dans une approche plus globale dans laquelle on vérifie notamment l'adéquation du modèle, ça me gène plus.

D'autre part, lorsque je parlais des IC, je visais la sortie de la commande conf.int de R et non l'erreur standard des paramètres.

Enfin, le dernier paragraphe semble tout droit sorti d'un labo de biologie! Lorsque je reviewe des papiers dans lesquelles les données ne permettent pas de réaliser des tests statistiques adéquats, il n'y a aucune honte à ne faire que du descriptif. En l’occurrence, sur les données présentées ici (qui sont bidons, je l'ai compris) le problème de quasi-séparation n'incite pas à la conduite de tests. N'oublions pas le bon sens. Je pense que la majorité des statisticiens sur ce forum vous diront également qu'une bonne description vaut mieux qu'une inférence foireuse. En cas d'effectifs trop petits, de données binaires avec des groupes sans événements... un descriptif suffit. D'ailleurs, les CONSORT statement, quelle que soit la nature de l'essai considérer impose des statistiques descriptives mais pas systématiquement de tests.
D'autre part, quand vous dites "Il faut pouvoir - entre autre - calculer un risque de première espèce", ce risque ne peut s'estimer de manière empirique, puisque ce risque est défini sous l'hypothèse nulle théorique, invérifiable en pratique. Les seuls cas dans lesquels on peut se permettre une approximation de l'erreur de première espèce, c'est dans les études de simulations.

"C'est la base de toute démarche de test, et les revues internationales dans lesquelles je publie ne se contentent pas de simples paramètres statistiques descriptifs, même s'ils sont élaborés". Le New England ou le Jama, dans certaines situations, s'en contentent si c'est la démarche la plus appropriée.
Finalement, les statisticiens sont les moins fervents des tests systématiques et certains cliniciens veulent être plus royalistes que le roi...

Ayana
Ayana
Ayana

Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Mar 18 Aoû 2015 - 5:55

Ayana a écrit:Je suis d'accord pour l'estimation des paramètres. Je suis plus gênée en philosophie par l'absence de résidus émanant de la stratégie. Si l'on souhaite simplement estimer les paramètres, ok. En revanche, dans une approche plus globale dans laquelle on vérifie notamment l'adéquation du modèle, ça me gène plus.
Les deux façons d'ajuster le modèle sont exactement les mêmes. Les deux jeux de données sont les mêmes, mais présentés différemment. Dans ce cas (très) simple, une régression logistique n'est juste qu'une procédure de comparaison de pourcentages (ce que vous appelez - en raccourci - une table de contingence). Par ailleurs, dans les deux cas il reste des résidus (puisque c'est le même modèle et le même jeu de données, et le modèle ne passe pas exactement dans les points).

Ayana a écrit:D'autre part, lorsque je parlais des IC, je visais la sortie de la commande conf.int de R et non l'erreur standard des paramètres.
Asymptotiquement, l'IC est juste 1.96 fois la SE.


Ayana a écrit:Enfin, le dernier paragraphe semble tout droit sorti d'un labo de biologie! Lorsque je reviewe des papiers dans lesquelles les données ne permettent pas de réaliser des tests statistiques adéquats, il n'y a aucune honte à ne faire que du descriptif. En l’occurrence, sur les données présentées ici (qui sont bidons, je l'ai compris) le problème de quasi-séparation n'incite pas à la conduite de tests. N'oublions pas le bon sens. Je pense que la majorité des statisticiens sur ce forum vous diront également qu'une bonne description vaut mieux qu'une inférence foireuse. En cas d'effectifs trop petits, de données binaires avec des groupes sans événements... un descriptif suffit. D'ailleurs, les CONSORT statement, quelle que soit la nature de l'essai considérer impose des statistiques descriptives mais pas systématiquement de tests.
Je n'ai jamais dit qu'il fallait passer à la trappe l'étape de description des données. Il faut évidement fournir des statistiques descriptives. En revanche, ce que je dis est que ça ne suffit pas, loin de là. Si les données n'étaient pas bidon, il y aurait (comme c'est très souvent mon cas) plusieurs autres variables dépendantes, et il faut une procédure de test. C'est incontournable, et pas que dans les labos de biologie.


Ayana a écrit:D'autre part, quand vous dites "Il faut pouvoir - entre autre - calculer un risque de première espèce", ce risque ne peut s'estimer de manière empirique, puisque ce risque est défini sous l'hypothèse nulle théorique, invérifiable en pratique. Les seuls cas dans lesquels on peut se permettre une approximation de l'erreur de première espèce, c'est dans les études de simulations.
Ben oui, et alors? C'est le cas pour tout estimateur, y compris les paramètres de la régression logistique. Ils ne sont pas connus. On les estime (au mieux). C'est aussi le cas pour le risque alpha. Je ne comprends pas en quoi ce point fait avancer le débat.


Ayana a écrit:"C'est la base de toute démarche de test, et les revues internationales dans lesquelles je publie ne se contentent pas de simples paramètres statistiques descriptifs, même s'ils sont élaborés". Le New England ou le Jama, dans certaines situations, s'en contentent si c'est la démarche la plus appropriée.
Encore une fois, ce n'est pas soit du descriptif, soit de l'inférentiel. C'est les deux, et le descriptif ne suffit pas. La regression logistique (dans ce cas) offre la possibilité de faire un test d'hypothèse. C'est la base de ma question.

Ayana a écrit:Finalement, les statisticiens sont les moins fervents des tests systématiques et certains cliniciens veulent être plus royalistes que le roi...
Je ne suis pas sur une volonté de tests systématiques. J'ai juste besoin d'une procédure de comparaison valide, et c'était l'origine de ma question initial. Et je suis moi-même statisticien.

Cordialement, Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par 12010929 Mar 18 Aoû 2015 - 9:42

Bonjour,
Je suis trop tenté pour résister.
Mettre un brin de KISS (Keep It Sophisticatedly Simple) dans tout problème permet d'avoir la meilleur solution.
Eric a écrit:Comment doit-on traiter une procédure de comparaison de pourcentages avec un GLM (régression logistique) lorsqu'il y a des cas avec p=0.0 et/ou p=1.0 ?
Dès l'instant qu' on a des p-value à 1 c'est suspect. çà dénote dasn souvent des cas un problème dans le modèle ou dans la procédure choisie pour faire l'estimation
A mon humble avis Il y a problème sur le choix de la technique pour résoudre le problème. La logistique permet d'estimer UN Y qualitatif binaire ou pas pour ensuite prédire. On ne peut pas lancer une logistique avec si peu d'observations.
Un simple test du Khi2 résoudrait le problème

12010929

12010929

Nombre de messages : 45
Date d'inscription : 24/06/2014

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Mar 18 Aoû 2015 - 10:14

12010929 a écrit:Bonjour,
Je suis trop tenté pour résister.
Mettre un brin de KISS (Keep It Sophisticatedly Simple) dans tout problème permet d'avoir la meilleur solution.
Eric a écrit:Comment doit-on traiter une procédure de comparaison de pourcentages avec un GLM (régression logistique) lorsqu'il y a des cas avec p=0.0 et/ou p=1.0 ?
Dès l'instant qu' on a des p-value à 1 c'est suspect. çà dénote dasn souvent des cas un problème dans le modèle ou dans la procédure choisie pour faire l'estimation
A mon humble  avis Il y a problème sur le choix de la technique pour résoudre le problème. La logistique permet d'estimer UN Y qualitatif binaire ou pas pour ensuite prédire. On ne peut pas lancer une logistique avec si peu d'observations.
Un simple test du Khi2 résoudrait le problème

12010929

Il me semble que vous n'avez pas lu ma question initiale. Quand je dis "p=0.0" ou "p=1.0" je ne parle pas de p-value (!) mais du pourcentage (binomial) que l'on veux modéliser.

Ici donc, le but est de modéliser effectivement une variable qualitatif binaire (dans mon exemple, "yes" ou "no"). Par ailleurs, je ne suis absolument pas d'accord avec l'assertion "On ne peut pas lancer une logistique avec si peu d'observations.". D'où tenez vous ça ? Même avec peu d'observations, nous sommes dans un test de rapport de vraisemblance qui reste valide. Un simple Chi2 résoudrait le problème ? Et pourquoi alors ce Chi2 pourrait-il être "lancé avec si peu d'observations" ? Et de quel Chi2 parlez-vous ? Un chi2 sur table de contingence ? Une régression logistique dans ce cas - au risque de me répéter - revient à une procédure de comparaison de pourcentages, comme le chi2 que vous proposez. Je vous invite à vous replonger dans le McCullah & Nelder qui décrivent tout ceci par le détail.

Cordialement,

Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Ayana Mar 18 Aoû 2015 - 12:33

Je rebondis sur le commentaire de 12010929, et je partage le point de vue sur le Chi-deux (en l'occurrence même un fisher exact), avec une correction de +0.5 dans les cases à effectif nul. Cette approche est meilleure car ne nécessite pas d'hypothèses spécifiques.
En revanche, la "rule of thumb" pour la régression logistique est d'avoir au moins 10 événements (ou non-événements) par modalité (en régression simple) et par croisement de modalités en régression multiple. Or dans l'exemple, il y a aucun événement ou 1 événement par modalité, d'où les problèmes d'estimation. N'oublions pas que la régression logistique est une approche paramétrique alors que les approches de type fisher exact pourraient être qualifiées de non-paramétrique, avantage non négligeable sur données à distributions atypiques.

Eric a écrit:
Je vous invite à lire des ouvrages qui présentent ces méthodes, plus généralement le modèle linéaire généralisé.
Eric a écrit:
Je vous invite à vous replonger dans le McCullah & Nelder qui décrivent tout ceci par le détail.
12010929, on se fait une commande groupée? ;-) En tout cas, je trouve que le KISS est le principe que tout statisticien devrait avoir dans un coin de la tête!
Ayana
Ayana
Ayana

Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Mar 18 Aoû 2015 - 15:44

Ayana a écrit:En revanche, la "rule of thumb" pour la régression logistique est d'avoir au moins 10 événements (ou non-événements) par modalité (en régression simple) et par croisement de modalités en régression multiple. Or dans l'exemple, il y a aucun événement ou 1 événement par modalité, d'où les problèmes d'estimation.

Je dois avoir loupé quelque chose. Dans l'exemple, le seul problème d'estimation est lié au fait que il y a des modalités à p=0.0 ou p=1.0, pas au fait qu'il y a moins de 10 évènements par modalité. Dans une réponse ci-dessus, je donne d'ailleurs un exemple avec au plus 3 évènements par modalité, et les paramètres (et leur SE) sont estimés correctement.

Pour finir, si l'on prend une autre fonction de lien (quasi-logistique, conformément au McCullagh et Nelder, donc) dans cet exemple, on retrouve des estimations correctes, un Hessian et des SE corrects, des procédures de comparaison multiple correctes, etc. Rien de ceci ne concerne les effectifs, et le test de rapport de vraisemblance suit déjà bien un Chi2 (un autre Chi2 que celui du test d'une table de contingence, évidement).

Mais bon, il semble qu'on tourne en rond, ce qui est d'autant plus étonnant que le problème que j'ai soulevé au début de cette discussion est résolu, comme je l'ai dit.

Cordialement, Eric.

Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Nik Jeu 27 Aoû 2015 - 6:23

Smile

J'étais en vacances et c'est assez fun de lire cette discussion je dois dire.

Je vais totalement dans le sens d'Eric. il s'agit d'un cas où les cas de la variable dépendante sont quasi-parfaitement séparés par les groupes explicatifs. C'est un cas que la régression logistique n'aime pas (ça parait trop déterministe comme répartition des effectifs). C'est encore différent des caas où le p est faible et où le nombre de 1 est globalement bas.


L'effectif de chacun des groupes peut parfaitement être vu comme la réalisation de plusieurs tirage d'une binomiale dont on va essayer d'estimer le paramètre p.

Je ne vois donc aucun problème d'effectif pour un modèle binomial dont la variable explicative est à un facteur à 3 modalités.

Quant à l'application d'un test (Fisher vu la répartition dans les cases), pourquoi pas, mais c'est là où on tombe dans le tout cuit d'avance sans avoir besoin de faire un test. Il est évident que vu l'hypothèse nulle de ce genre de test qu'il va apparaitre significatif. Je ne crois pas que ce soit l'objectif initial.

Il s'agit bien ici d'un processus de modélisation dans le but de prédire d'autres données ou de jauger la part explicatives de certains paramètres.

Voilà, c'était mes 2c de participation à la discussion. On en conclut que la régression logistique est un outil qui est loin d'être simple Wink

A l'occasion, Eric, si tu peux mettre le code de la fonction de lien que tu as utilisée ça pourrait en dépanner d'autres (ici on peut placer du code R tout en parlant de stat Wink)

Nik

Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Jeu 27 Aoû 2015 - 9:41

Nik a écrit:
il s'agit d'un cas où les cas de la variable dépendante sont quasi-parfaitement séparés par les groupes explicatifs. C'est un cas que la régression logistique n'aime pas (ça parait trop déterministe comme répartition des effectifs).
Bon, on dirait qu'il faille que je me répète encore une fois. NON (non!), il ne s'agit pas d'un cas de séparabilité. Je le répète donc encore ici, l'exemple est bidon, et même avec une parfaite séparabilité, c'est le fait qu'il y aient une ou plusieurs modalités à p=0.1 ou p=0.0 qui pose problème. La raison est que, dans ce cas, le logit va à l'infini et le Hessien ne peut être calculé sans ambiguïté. Il faut donc changer la fonction de lien qui évite ce problème. McCullagh et Nelder propose la fonction de lien suivante, si p était défini comme Y/N : log((p+0.5/M)/(1-p+0.5/M)), qui a la propriété intéressante de retourner vers un fonction logit losque N tend vers l'infini.

Nik a écrit:Je ne vois donc aucun problème d'effectif pour un modèle binomial dont la variable explicative est à un facteur à 3 modalités
Je suis bien d'accord, je me tue à le répéter ici.

Nik a écrit:On en conclut que la régression logistique est un outil qui est loin d'être simple Wink
Je trouve cette analyse assez simple en fait. La difficulté ici est de trouver la bonne fonction de lien.
Nik a écrit:
A l'occasion, Eric, si tu peux mettre le code de la fonction de lien que tu as utilisée ça pourrait en dépanner d'autres (ici on peut placer du code R tout en parlant de stat Wink)

La voilà :

Code:
function (M=1)
{
    linkfun <- function(mu) log((mu+0.5/M)/(1-mu+0.5/M))
    linkinv <- function(eta) ((1+0.5/M)*exp(eta)-0.5/M)/(1+exp(eta))
    mu.eta <- function(eta) (1+1/M)/(exp(-eta)+exp(eta)+2)
    valideta <- function(eta) TRUE
    link <- paste0("elogis(",M, ")")
    structure(list(linkfun = linkfun, linkinv = linkinv,
                   mu.eta = mu.eta, valideta = valideta, name = link),
              class = "link-glm")
}

(cette fonction doit s'appeler "elogis" pour que la variable "link" puisse être correctement définie)

HTH, Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Nik Jeu 27 Aoû 2015 - 11:21

NON (non!), il ne s'agit pas d'un cas de séparabilité
oui je n'aurais pas dû utiliser ce terme...on est bien d'accord sur le p=0 ou p=1 et les problèmes d'obtention de la matrice hessienne Smile

Ton analyse est effectivement simple, je soulignais simplement que la régression logistique apparaît à certain comme un outil simple et "facilement" maitrisable mais mon propre retour d'expérience de toutes les discussions sur cet outil me fait dire que c'est une illusion Smile. Ce n'est pas pour rien s'il y a des livres complet qui lui sont consacrés.

Merci pour le code.

@+

Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par skaperla Ven 28 Aoû 2015 - 8:16

Bonjour tout le monde ! J'essaie de comprendre votre conversation, mais je crois que je ne comprends pas bien ce que vous entendez par "séparabilité", est ce qu'une bonne âme voudrait bien m'expliquer siouplait ?
skaperla
skaperla

Nombre de messages : 18
Localisation : Tours
Date d'inscription : 11/05/2011

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Nik Ven 28 Aoû 2015 - 8:18

C'est quand une variable explicative sépare parfaitement les 1 et les 0. Ce n'est pas le cas ici mais ce que je voulais dire c'est qu'au sein d'un groupe les données ne comportent quasi-exclusivement que des 1 ou des 0. C'est ça qui conduit à avoir des proba observées proche de 1 ou 0.


Nik

Nombre de messages : 1606
Date d'inscription : 23/05/2008

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par skaperla Ven 28 Aoû 2015 - 9:01

Ok mais du coup on n'a jamais de proba observées proches de 1 ou 0 quand on n'est pas dans un cas où les données sont quasi séparées ? Je ne comprends pas Eric quand vous dites que ce n'est pas un problème de séparation Neutral
skaperla
skaperla

Nombre de messages : 18
Localisation : Tours
Date d'inscription : 11/05/2011

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Ven 28 Aoû 2015 - 15:47

skaperla a écrit:Ok mais du coup on n'a jamais de proba observées proches de 1 ou 0 quand on n'est pas dans un cas où les données sont quasi séparées ? Je ne comprends pas Eric quand vous dites que ce n'est pas un problème de séparation Neutral

Je ne dis pas que le problème de séparabilité n'en est pas un. Ce que je dis (j'ai l'impression d'avoir répété ca de nombreuses fois, j'imagine donc que je ne suis pas clair..), c'est que ce n'est pas le problème que je pose ici. Je répète encore: le problème que je pose est que, lorsqu'il y a 1 ou plusieurs cas où p=0.0 ou p=1.0, l'ajustement d'une régression logistique avec un lien logit pose des problèmes de convergence (et des SE pourris). Et ce, qu'il y ait problème de séparabilité ou pas. D'ailleurs, il n'y en a généralement pas. Si je devais comparer 100 modalités, et que seule une avait un p=0.0 ou p=1.0, le problème que je soulève serait le même. Ceci répond accessoirement à votre question: On peut avoir 1 modalité à p=0.0 ou p=1.0, sans aucun problème de séparabilité. Tout ceci est clairement détaillé dans la littérature, notamment dans le texte fondateur de McCullagh et Nelder, et la solution est de prendre une autre fonction de lien qui ne tend pas à l'infini lorsque p=0.0 ou p=1.0.

Le problème de séparabilité est un autre débat, qui est également largement discuté dans des ouvrages sur la regression (notamment régression logistique) et des sites web en parlent également.

J'espère que c'est plus clair ainsi.

Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Ayana Lun 31 Aoû 2015 - 8:54

Bonjour,

Voici la définition de la séparation par Heinze et Schemper (Statistics in Medicine, 2002) :
"In logistic regression it has been recognized that with small to medium-sized data sets situations
may arise where, although the likelihood converges, at least one parameter estimate
is infnite [1–7]. These situations occur if the responses and non-responses can be perfectly
separated by a single risk factor or by a non-trivial linear combination of risk factors. Therefore
Albert and Anderson [1] denoted such situations by ‘separation’. The phenomenon is also
known as ‘monotone likelihood’ [8]."

Ici, les réponses et non-réponses sont séparées par certaines modalités du facteur de risque du fait que p=0 ou p=1. Donc je réitère mon assertion qui est que dans votre exemple, vous avez clairement un problème de quasi-séparation. Il existe, je vous l'accorde une large littérature sur le sujet, mais il s'agit que de deux formulations de la même problématique. A regarder aussi la littérature sur les scores de propension, car ce problème y est assez fréquent.

Ayana
Ayana
Ayana

Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par niaboc Lun 31 Aoû 2015 - 9:04

j'appuie la réponse d'Ayana. J'interprète la quasi-séparabilité de cette manière également et je pense que le problème initial est celui-là.
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Eric Wajnberg Mar 1 Sep 2015 - 6:50

Je fais encore une réponse, et après j'arrête. Ca ne sert semble t-il à rien de répéter toujours la même chose :

L'exemple que je donne au début de ce threat est bidon. Les véritables jeux de données sur lesquels je bosse ont de nombreuses modalités, de nombreuses variables explicatives (quantitatives ou non), avec interactions, etc. Sur ces nombreuses modalités, je n'en ai parfois qu'un seule qui a un p=0.0 ou p=1.0. Il n'y a aucun problème de séparabilité dans ces jeux de données réels sur lesquels je travaille. Pourtant, pour cette modalité particulière, le modèle peut estimer le paramètre de régression correctement, mais pas sa SE, car le logit est à l'infini. L'utilisation d'une régression quasi-logistique, avec une autre fonction de lien, résout le problème complètement. Tout ceci en conformité avec la littérature sur la régression logistique.

On peut avoir un problème de séparabilité et un problème lié au cas où une ou plusieurs modalités sont à p=0.0 ou p=1.0. Mais ces deux situations ne sont pas forcément corrélée, ce qu'il à l'origine de ma question initiale.

Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1237
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

interpreter une reg logistique lorsque p=0.0 et/ou p=1.0  Empty Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum