GEE: comment ça marche?

Questions sur les fonctions statistiques de R

Modérateur : Groupe des modérateurs

Karine Poitrineau
Messages : 18
Enregistré le : 30 Mai 2006, 19:37

GEE: comment ça marche?

Messagepar Karine Poitrineau » 11 Juil 2006, 11:20

Bonjour à tous,
Après un bon tour dans le monde des régression logistiques mixtes, je commence à me pencher sur les méthodes de "Generalized Estimating Equations" (toujours sur le même problème de stat: fascinant comme des résultats de manips peuvent amener à découvrir de nouveaux pans des statistiques).

J'avoue que pour l'instant je ne comprends pas bien la théorie qui sous-tend ce type de modèle, et en pratique comment on utilise la fonction dans R et surtout comment on analyse les résultats (j'ai bien chargé la package GEE, et testé ceci: summary(gee(encapsul ~ souche, id=repetition, family= "binomial", corstr="exchangeable")) mais je ne comprends encore pas ce que signifient les différents codes qu'on peut utiliser pour l'argument "corstr".

Je furette pas mal dans les archives du forum de R, ainsi que sur le net, mais je ne trouve pas d'explications simples me permettant de structurer toutes les infos trouvées dans ma petite tête de biologiste :?

Bref, si une bonne âme peut éclaire run peu ma lanterne, je lui vouerai une reconnaissance durable (étant mortelle, enfin je crois, je n'ose utiliser le terme éternelle).

K.

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 11 Juil 2006, 12:23

Bonjour,

Bref, si une bonne âme peut éclaire run peu ma lanterne, je lui vouerai une reconnaissance durable (étant mortelle, enfin je crois, je n'ose utiliser le terme éternelle).


ben là.... obligé de répondre :o)

En bref, Les GEEs (Generalized Estimating Equation, Liang & Zeger 1986, Prentice & Zhao 1991) peuvent être considérer comme une extension des GLM (ex. modèle linéaire généralisé, Nelder & Wedderburn 1972, McCullagh & Nelder 1989) pour l’analyse des données corrélées. Lors de la construction du modèle, on pose une hypothèse concernant la structure de la corrélation au sein des groupes (ex. indépendance, non-structurée, auto-régressif). De plus, on utilise souvent un estimateur de type « sandwich » pour obtenir une estimation robuste de la variance des paramètres et pour la construction des tests et des intervalles des confiances associés à aux paramètres du modèle. Ce type d’estimation est généralement moins sensible aux problèmes d’hétéroscédasticité des données.

Liang, K.Y. & Zeger, S.L. (1986) Longitudinal data analysis using generalized linear models. Biometrika, 73, 13-22.
McCullagh P. & Nelder J. A. (1989) Generalized Linear Models. London: Chapman & Hall/CRC.
Nelder J. A. & Wedderburn R. W. M. (1972) Generalized Linear Models. Journal of the Royal Statistical Society, Series A, 135, 370-384.
Prentic, R.L. & Zha, L.P. (1991). Estimating equations for parameters in means and covariances of multivariate discrete and continuous responses. Biometrics, 47, 825-839.

Liens sur le WEB
http://archimede.mat.ulaval.ca/pages/du ... brooke.pdf
http://www.uquebec.ca/reglog/chapitre12.htm
http://ifr69.vjf.inserm.fr/~webifr/ppt/gee_mc21.ppt
http://daedale.free.fr/doc/partie6.pdf

Avec une mention spéciale pour :
Laura Thomson’s S-PLUS (and R) Manual to Accompany Agresti’s Categorical Data Analysis. http://math.cl.uh.edu/thompsonla/Splusdiscrete2.pdf
cf chapitre 11.

Højsgaard S. (2004) Modules 14: Generalized Estimation Equations, Master of Applied Statitics, http://genetics.agrsci.dk/biometry/cour ... module.pdf

Librairie sous R :
gee
geepack
yags

Ils sont souvent en « compétition » avec les GLMM (c’est pas vraiment la même approche du problème). Ils sont pratiques lorsque l’on ne sait pas trop comment organiser les effets dans modèles mixtes (aléatoire ? fixe ? ben c’est pas toujours évident). On fixe un type de matrice de corrélation et on se casse pas trop la tête … mais avec les avantages et les désavantages que cela implique … finalement, c’est toujours la même chose, il faut faire un choix.

L’estimation robuste peut-être aussi très intéressant dans les cas où on a du mal à modéliser correctement cette satanée variance (bien sûr, il ne faut quand même pas en abuser). Il me « semble » un peu plus performant pour les modèles avec des distributions binomiales et plus performant sur les jeux de données plus modestes … mais cela reste à vérifier, personne n’est vraiment clair sur ces points et ça dépend aussi pas mal des interlocuteurs.

en espérant t'avoir aidé un peu :)


@+++

pierre

Karine Poitrineau
Messages : 18
Enregistré le : 30 Mai 2006, 19:37

Messagepar Karine Poitrineau » 11 Juil 2006, 12:30

Super, merci Pierre, ces explications et liens me semblent à la hauteur (ou plutôt à la "bassesse") de mon niveau de compréhension!

Bon ben je n'ai plus qu'à m'y mettre et voir ce que ça donne avec mon jeu de données (qui décidément aura été trpatouillé dans tous les sens).

:)
K.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 11 Juil 2006, 12:39

En complément de la réponse de Pierre, l'ouvrage de Diggle et al. est très éclairant (et replace la méthode dans le contexte plus général de l'analyse des données longitudinales):

Diggle, P.J., Liang, K.-Y., Zeger, S.L., 1994. Analysis of longitudinal data, Vol 13, 1st Edition. Clarendon Press, Oxford (UK), 253 p.

Il y a une édition plus récente.

Par ailleurs, le pb des modèles GEE est de ne pas fournir d'estimateurs du maximum de vraisemblance, ce qui interdit l'utilisation du test du rapport des vraisemblances, et plus généralement le recours aux critères d'information reposant sur la vraisemblance maximisée (AIC et ses petits frères, BIC, etc.). Je crois cependant que des méthodes ont été récemment développées pour surmonter le pb mais je ne les connais pas.

Une solution alternative est de recourir à des modèles linéaires généralisés et :
* soit la quasi-vraisemblance,
* soit des distributions ad hoc,

permettant de tenir compte d'une surdispersion des données (variance observée plus grande que la binomiale, par exemple).

Quelques méthodes de ce type sont disponibles dans le package aod. Voir les fonctions quasibin et betabin pour des données binomiales (et quasipois et negbin pour des comptages).

Bien cordialement,

Renaud

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 11 Juil 2006, 12:43

re....

Bon ben je n'ai plus qu'à m'y mettre et voir ce que ça donne avec mon jeu de données (qui décidément aura été trpatouillé dans tous les sens).


Par contre, juste un p'tit conseil ... Ne fait pas trop de modèles, sinon tu vas finir par devoir ajouter une correction sur tes "p-value"... :)
si les résultats convergent, il faut pas insister. C'est jamais très bon l'acharnement thérapeutique.

et pour le choix du modèle ... on applique le rasoir d'Ockham.

@+++ et bon courage


Pierre

PS: Ne t'inquiète pas ... si on fait de la bio, c'est parce qu'on n'était pas des star en Math :)

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 11 Juil 2006, 12:47

re...

Par ailleurs, le pb des modèles GEE est de ne pas fournir d'estimateurs du maximum de vraisemblance, ce qui interdit l'utilisations du test du rapport des vraisemblances, et plus généralement le recours aux critères d'information reposant sur la vraisemblance maximisée (AIC et ses petits frères, BIC, etc.). Je crois cependant que des méthodes ont été récemment développées pour surmonter le pb mais je ne les connais pas.


oui ... il me semble qu'il y a une version du calcul du QIC dans le package yags.

@+

Pierre

Karine Poitrineau
Messages : 18
Enregistré le : 30 Mai 2006, 19:37

Messagepar Karine Poitrineau » 11 Juil 2006, 17:03

Pierre Bady a écrit :Par contre, juste un p'tit conseil ... Ne fait pas trop de modèles, sinon tu vas finir par devoir ajouter une correction sur tes "p-value"... :)
si les résultats convergent, il faut pas insister. C'est jamais très bon l'acharnement thérapeutique.

Je sais que je m'acharne un peu, mais avec les modèles mixtes j'ai des résultats incohérents entre deux fonctions (glmmPQL et lmer), et avec ma première analyse (ANOVA) j'étais un peu éloignée des conditions d'application correctes du tests (et j'avoue que j'avais l'espoir qu'avec des méthodes plus adéquates je pourrais observer un effet significatif de mes souches).

Puis j'aime apprendre et je me dis que si ça ne me sert pas sur ces données, ça pourra me servirune autre fois ;-) (ou au moins je comprendrais mieux les méthodes utilisées par d'autres).
Et si mes errements statistiques peuvent aussi aider d'autres personnes, c'est encore mieux!

Enfin pour l'instant je ne comprends encore pas grand chose, j'ai fait ma première analyse avec geese, et je me sens un peu comme une poule qui a trouvé un couteau, je ne sais pas ce qu'on peut conclure de tels résultats:

Code : Tout sélectionner

> summary(geese(encapsul ~ souche, id=repetition, family= "binomial", corstr="exchangeable"))

Call:
geese(formula = encapsul ~ souche, id = repetition, family = "binomial",
    corstr = "exchangeable")

Mean Model:
 Mean Link:                 logit
 Variance to Mean Relation: binomial

 Coefficients:
               estimate    san.se         wald            p
(Intercept) -2.69343169 0.6945274 15.039490129 0.0001052849
soucheA21    1.92317589 1.0151617  3.588951592 0.0581649274
soucheA22    1.12383229 0.8389415  1.794484103 0.1803807730
soucheA28    1.04925402 0.9252915  1.285890968 0.2568065761
soucheA3     0.94888584 0.9715212  0.953945153 0.3287171216
soucheA32    1.09030644 0.7410310  2.164832798 0.1411999807
soucheA34    1.59524806 1.3299232  1.438809509 0.2303320850
soucheA41    1.23092415 0.7862084  2.451248118 0.1174314608
soucheA45    0.05542961 0.9830327  0.003179419 0.9550340423
soucheA5     2.12923766 1.0145340  4.404686941 0.0358403024
soucheAc11   1.28211770 0.9364794  1.874387313 0.1709734398
soucheAc13  -0.81011243 1.1185684  0.524524172 0.4689181533
soucheAc14   2.82466083 1.2060396  5.485415287 0.0191757641
soucheAc16   1.63710882 1.1259204  2.114169212 0.1459412331
soucheAc21   1.79763285 1.0077579  3.181922212 0.0744570912
soucheAc3    0.42130360 0.9633218  0.191270313 0.6618614434
soucheAc9    2.81397490 1.1776207  5.709913845 0.0168693673
soucheAcX    0.55925396 0.8250234  0.459500090 0.4978576996
soucheAcY    1.41794157 0.9555624  2.201905148 0.1378402853
soucheSF1    0.44599064 0.8335323  0.286290324 0.5926076445
soucheSF11   3.04615330 1.2836625  5.631210800 0.0176434406
soucheSF12   1.31291079 1.0399619  1.593806424 0.2067831439
soucheSF2    2.55523172 1.0574629  5.838889914 0.0156757136
soucheSF3    0.54902539 0.8647982  0.403046638 0.5255200257
soucheSF4    0.95058484 1.1645094  0.666339845 0.4143306215
soucheSF5   -1.65998737 1.1268432  2.170114392 0.1407157664
soucheSF6    1.56243463 0.8243171  3.592651798 0.0580355651
soucheSF7    0.18751807 1.0409192  0.032452801 0.8570374708
soucheSF8    2.72797964 1.1702258  5.434291138 0.0197451032
soucheSF9    1.10715494 0.8833096  1.571053409 0.2100540992

Scale Model:
 Scale Link:                identity

 Estimated Scale Parameters:
             estimate    san.se     wald         p
(Intercept) 0.8415712 0.4899299 2.950624 0.0858444

Correlation Model:
 Correlation Structure:     exchangeable
 Correlation Link:          identity

 Estimated Correlation Parameters:
       estimate    san.se     wald         p
alpha 0.1803974 0.1249747 2.083608 0.1488879

Returned Error Value:    0
Number of clusters:   111   Maximum cluster size: 59


C'est la Wald-statistique qui me permet de conclure si j'ai un effet significatif (enfin dans mon cas non-significatif) de ma variable "souche"?

K.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 11 Juil 2006, 17:14

Réponse courte: oui.

Le test de Wald est juste le rapport du coef et de son écart-type, supposé suivre une loi du t de student avec ddl = nb de ddl des résidus. L'hypothèse nulle est l'égalité du coef à 0 ce qui est ce que tu cherches ici, mais pas toujours intéressant.

La fonction wald.test du package aod (ou la fonction linear.hypothesis du package car) permet de tester des hypothèses pafois plus intéressantes, comme l'égalité de coefs entre eux. Je crois aussi qu'il y a une méthode anova (non documentée il y a encore qques mois) dans le package geese permettant de tester plusieurs coefs en bloc. C'est en fait un test de Wald qui est pratiqué.

Attention toutefois à l'effet Hauck-Donner pour le test de Wald (un petit coup de Google si tu veux en savoir plus): résultats parfois aberrants fournis par ce test.

Renaud


Retourner vers « Archives : Fonctions statistiques »

Qui est en ligne

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

cron