Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
+2
Ayana
Eric Wajnberg
6 participants
Page 1 sur 1
interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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 :
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 :
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.
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- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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.
Eric Wajnberg- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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
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- Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
Alors comment expliquez vous les ddl dans ce cas-là? Dans le code, nulle part n'est précisé l'effectif...
Ayana- Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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 :
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.
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- Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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:
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.
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- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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
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- Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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: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.
Asymptotiquement, l'IC est juste 1.96 fois la SE.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.
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: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.
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: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.
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:"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.
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.Ayana a écrit:Finalement, les statisticiens sont les moins fervents des tests systématiques et certains cliniciens veulent être plus royalistes que le roi...
Cordialement, Eric.
Eric Wajnberg- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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.
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
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.
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'estimationEric 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 ?
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
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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.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'estimationEric 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 ?
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- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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.
Ayana
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é.
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!Eric a écrit:
Je vous invite à vous replonger dans le McCullah & Nelder qui décrivent tout ceci par le détail.
Ayana
Ayana- Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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
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 )
Nik
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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:
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).
Je suis bien d'accord, je me tue à le répéter ici.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 trouve cette analyse assez simple en fait. La difficulté ici est de trouver la bonne fonction de lien.Nik a écrit:On en conclut que la régression logistique est un outil qui est loin d'être simple
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 )
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- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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 hessienneNON (non!), il ne s'agit pas d'un cas de séparabilité
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 . 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
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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- Nombre de messages : 18
Localisation : Tours
Date d'inscription : 11/05/2011
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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
skaperla- Nombre de messages : 18
Localisation : Tours
Date d'inscription : 11/05/2011
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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
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- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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
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- Nombre de messages : 550
Localisation : Londres
Date d'inscription : 18/08/2009
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: interpreter une reg logistique lorsque p=0.0 et/ou p=1.0
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.
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- Nombre de messages : 1238
Date d'inscription : 14/09/2012
Sujets similaires
» AIC pour comparer logistique et logistique conditionnelle
» interpreter une ACP
» Interpréter une ACP
» Comment interpréter une adéquation ?
» Interpréter une corrélation
» interpreter une ACP
» Interpréter une ACP
» Comment interpréter une adéquation ?
» Interpréter une corrélation
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum