Package R / Stata pour GEE binomial négatif tronqué?

13

Ceci est mon premier message posté. Je suis vraiment reconnaissant envers cette communauté.

J'essaie d'analyser des données de comptage longitudinal qui sont tronquées à zéro (probabilité que la variable de réponse = 0 soit 0) et la moyenne! = Variance, donc une distribution binomiale négative a été choisie par rapport à un poisson.

Fonctions / commandes que j'ai exclues:

R

  • La fonction gee () dans R ne tient pas compte de la troncature nulle ni de la distribution binomiale négative (même avec le paquet MASS chargé)
  • glm.nb () dans R ne permet pas différentes structures de corrélation
  • vglm () du package VGAM peut utiliser la famille posnegbinomial, mais il a le même problème que la commande ztnb de Stata (voir ci-dessous) en ce que je ne peux pas réaménager les modèles en utilisant une structure de corrélation non indépendante.

Stata

  • Si les données n'étaient pas longitudinales, je pourrais simplement utiliser les packages Stata ztnb pour exécuter mon analyse, MAIS cette commande suppose que mes observations sont indépendantes.

J'ai également exclu GLMM pour diverses raisons méthodologiques / philosophiques.

Pour l'instant, je me suis installé sur la commande xtgee de Stata (oui, je sais que xtnbreg fait également la même chose) qui prend en compte à la fois les structures de corrélation non indépendantes et la famille binomiale neg, mais pas la troncature zéro. L'avantage supplémentaire de l'utilisation de xtgee est que je peux également calculer des valeurs qic (en utilisant la commande qic) pour déterminer les structures de corrélation les mieux adaptées à mes variables de réponse.

S'il y a un package / commande dans R ou Stata qui peut prendre en compte 1) la famille nbinomiale, 2) GEE et 3) la troncature zéro, je mourrais d'envie de le savoir.

J'apprécierais grandement toutes les idées que vous pourriez avoir. Je vous remercie.

-Casey

Iris Tsui
la source

Réponses:

12

Pour R, deux options me viennent à l'esprit, que je ne connais que vaguement au mieux.

Le premier est le psclpackage, qui peut s'adapter à des modèles zéro tronqués gonflés et haies d'une manière très agréable et flexible. Le psclpaquet suggère l'utilisation du sandwichpaquet qui fournit des "estimateurs d'erreur standard robustes au modèle pour les données transversales, chronologiques et longitudinales". Vous pouvez donc ajuster votre modèle de comptage, puis utiliser l' sandwichensemble pour estimer une matrice de covariance appropriée pour les résidus en tenant compte de la nature longitudinale des données.

La deuxième option pourrait être de regarder le geepackpackage qui semble faire ce que vous voulez, mais uniquement pour un modèle binomial négatif avec thêta connu, car il s'adaptera à tout type de GLM que la glm()fonction de R peut (utilisez donc la fonction familiale de MASS) .

Une troisième option a soulevé la tête: gamlsset c'est un module complémentaire gamlss.tr. Ce dernier inclut une fonction gen.trun()qui peut transformer n'importe laquelle des distributions prises en charge par gamlss()en une distribution tronquée de manière flexible - vous pouvez spécifier gauche tronqué à 0 distribution binomiale négative par exemple. gamlss()elle-même inclut la prise en charge d'effets aléatoires qui devraient prendre en compte la nature longitudinale des données. Cependant, il n'est pas immédiatement clair si vous devez utiliser au moins une fonction lisse d'une covariable dans le modèle ou si vous pouvez simplement tout modéliser comme des fonctions linéaires comme dans un GLM.

Réintégrer Monica - G. Simpson
la source
Le package pscl, je crois, ne convient qu'aux modèles à gonflage nul et à obstacle. Les modèles Hurdle intègrent à la fois un composant de comptage tronqué à gauche et un composant Hurdle censuré à droite. Je ne sais pas comment, ni même si je suis capable d'exécuter un modèle Hurdle sans le composant Hurdle, mais je vais examiner le package Sandwick. Quant au paquet geepack, il semble avoir le même problème que le paquet gee; lorsque je spécifie une famille "negative.binomial" (de MASS), sans spécifier de thêta, il demandera un thêta. Cependant, lorsque je spécifie une valeur thêta, cela crachera une erreur indiquant qu'il s'agit d'une famille non reconnue.
Iris Tsui
@Casey - désolé d'avoir mal lu vos exigences concernant la troncature zéro. Dommage que le geepack ne fonctionne pas avec cette fonction familiale. Si je pense à autre chose, je mettrai à jour ici.
Reinstate Monica - G. Simpson
@Casey J'ai ajouté une note sur le gamlsspackage qui pourrait également convenir à R dans la facture.
Reinstate Monica - G. Simpson
Accepter votre réponse en raison des multiples suggestions de ressources et de fonctions qui ont amélioré ma compréhension. Il semble que `` gamlss '' serait un moyen possible de résoudre mon problème, mais comme je suis en fait un non-statisticien, je n'ai pas actuellement de formation en mathématiques ni le temps d'ouvrir cette boîte de vers pour le moment (mais peut-être que finalement je le ferai). Comme mentionné dans un autre commentaire, pour mes données au moins, il semble que l'ignorance de la troncature zéro ne changera pas beaucoup mes estimations et les erreurs std. Pour mon public cible, je crois qu'un GEE nbinomial fera très bien l'affaire. Merci!
Iris Tsui
9

Hmm, bonne première question! Je ne connais pas de package répondant à vos besoins précis. Je pense que le xtgee de Stata est un bon choix si vous spécifiez également l' vce(robust)option pour donner des erreurs standard Huber-White, ou vce(bootstrap)si c'est pratique. L'une ou l'autre de ces options garantira une estimation cohérente des erreurs standard malgré la mauvaise spécification du modèle que vous aurez en ignorant la troncature zéro.

Reste à savoir quel effet l'ignorance de la troncature zéro aura sur les estimations ponctuelles qui vous intéressent. Cela vaut la peine de faire une recherche rapide pour voir s'il existe de la documentation pertinente à ce sujet en général, c'est-à-dire pas nécessairement dans un contexte GEE - j'aurais pensé que vous pouvez supposer assez sûrement que de tels résultats seront également pertinents dans le cas GEE. Si vous ne trouvez rien, vous pouvez toujours simuler des données avec une troncature nulle et des estimations d'effet connues et évaluer le biais par simulation.

un arrêt
la source
1
Je me suis assuré d'estimer les erreurs types robustes. De plus, dans le livre "Modèles d'effets mixtes et extensions en écologie avec R" de Zuur, et al, 2009, à la page 261, ils mentionnent, "si la moyenne de la variable de réponse est relativement grande, en ignorant le problème de troncature, puis en appliquant un modèle linéaire généralisé (GLM) binomial de Poisson ou négatif (NB), est peu susceptible de causer un problème. " Heureusement, les moyennes de mes variables de réponse sont grandes, donc je me sens un peu plus à l'aise de déprioriser la troncature zéro par rapport aux aspects GEE et négbinomiaux de mes régressions.
Iris Tsui
On dirait que vous en savez déjà plus sur ce sujet que moi! Ou toute autre personne sur ce site, à en juger par l'absence d'autres réponses.
onestop le
C'est un peu incroyable; qui savait que les données de comptage longitudinal surdispersées seraient si difficiles à analyser (sans faire un GLMM, ce que je n'ai même pas encore étudié)? Si seulement mes données étaient gonflées à zéro, ce serait une autre histoire.
Iris Tsui
5

J'ai eu le même problème dans ma thèse. Dans Stata, je viens de me créer un programme .ado personnalisé avec deux appels à xtgee.

Pour cela, j'ai trouvé les diapositives / programmes «Modélisation des coûts et des comptes des soins de santé» de Partha Deb, Willard Manning et Edward Norton utiles. Ils ne parlent pas de données longitudinales, mais c'est un point de départ utile.

Keith
la source
1

Je cherchais des réponses sur l'interprétation de glmmADMB et j'ai vu votre message. Je sais que c'était il y a longtemps, mais j'aurais peut-être la réponse.

Regardez dans le paquet glmmADMB lorsque vous utilisez des modèles de haies. Vous devez diviser en deux les analyses de vos données: l'une d'elles ne traite que les données non nulles. Vous pouvez ajouter des effets mixtes et choisir la distribution. La condition est que les données doivent être gonflées à zéro et je ne sais pas si cela correspond à vos besoins! Quoi qu'il en soit, j'espère que vous l'avez découvert il y a longtemps!

Marta
la source