logistique multinomiale les modèles multiniveaux dans la R
Problème: j'ai besoin d'estimer un ensemble de logistique multinomiale les modèles multiniveaux et ne peut pas trouver un package R. Quel est le meilleur package R pour estimer ces modèles? STATA 13 récemment ajouté cette fonctionnalité à leurs niveaux multiples effets mixtes modèles de sorte que la technologie de l'estimation de ces modèles semble être disponible.
Détails: Un certain nombre de questions de recherche nécessitent l'estimation de la régression logistique multinomiale des modèles dans lesquels la variable de résultat est catégorique. Par exemple, les biologistes pourraient être intéressés à étudier le type d'arbres (par exemple, de pins, d'érables, de chênes) sont les plus touchées par les pluies acides. Des chercheurs du marché susceptible d'être intéressé de savoir si il existe une relation entre l'âge des clients et de la fréquence de shopping chez Target, Safeway, ou Walmart. Ces cas ont en commun que la variable de résultat est catégorique (non ordonnée) et de la logistique multinomiale les régressions sont la méthode préférée de l'estimation. Dans mon cas, je fais des recherches sur les différences entre les types de migrations humaines, avec la variable de résultat (mig) code: 0=pas migré, 1=migration interne, 2=la migration internationale. Voici une version simplifiée de mon jeu de données:
migDat=data.frame(hhID=1:21,mig=rep(0:2,times=7),age=ceiling(runif(21,15,90)),stateID=rep(letters[1:3],each=7),pollution=rep(c("high","low","moderate"),each=7),stringsAsFactors=F)
hhID mig age stateID pollution
1 1 0 47 a high
2 2 1 53 a high
3 3 2 17 a high
4 4 0 73 a high
5 5 1 24 a high
6 6 2 80 a high
7 7 0 18 a high
8 8 1 33 b low
9 9 2 90 b low
10 10 0 49 b low
11 11 1 42 b low
12 12 2 44 b low
13 13 0 82 b low
14 14 1 70 b low
15 15 2 71 c moderate
16 16 0 18 c moderate
17 17 1 18 c moderate
18 18 2 39 c moderate
19 19 0 35 c moderate
20 20 1 74 c moderate
21 21 2 86 c moderate
Mon but est d'estimer l'incidence de l'âge (variable indépendante) sur la cote de (1) la migration interne et non de la migration, (2) la migration à l'échelle internationale et non de la migration, (3) la migration interne contre la migration internationale. Une complication supplémentaire est que mes données opérer à différents niveaux d'agrégation (par exemple, la pollution de l'opère au niveau de l'état) et je suis également intéressé à la prédiction de l'impact de la pollution de l'air (pollution) sur les chances de s'embarquer sur un type particulier de mouvement.
Maladroit solutions: On peut estimer un ensemble de séparer les modèles de régression logistique par la réduction de l'ensemble de données pour chaque modèle à deux types de migration (par exemple, le Modèle 1: seuls les cas codés mig=0 et mig=1; Modèle 2: seuls les cas codés mig=0 et mig=2; Modèle 3: seuls les cas codés mig=1 et mig=2). Ce simple modèle de régression logistique multiniveau pourrait être estimée lme4 mais cette approche n'est pas idéale, car elle ne tient pas dûment compte de l'impact de la omise cas. Une deuxième solution serait d'exécuter logistique multinomiale les modèles multiniveaux dans MLWiN par R à l'aide de la R2MLwiN paquet. Mais depuis MLWiN n'est pas open source et les objets générés difficile à utiliser, je préfère éviter cette option. Après une vaste recherche sur internet, il semble y avoir une certaine demande pour de tels modèles, mais je ne suis pas au courant d'une bonne R de package. Donc, ce serait formidable si certains experts qui ont réalisé de tels modèles pourraient fournir une recommandation et, s'il y a plus d'un paquet peut indiquer quelques avantages/inconvénients. Je suis sûr que ces informations seraient très utiles pour plusieurs R utilisateurs. Merci!!
Meilleur,
Raphaël
- deux suggestions: (1) examiner les
MCMCglmm
paquet; (2) votre "maladroit méthode" est en fait la méthode standard (voir, par exemple, Dobson et Barnett Introduction aux Modèles Linéaires Généralisés, 3d ed.); un paramètre d'un modèle multinomial de la série du binôme de contraste (niveau 1 ou de niveau 2, niveau 1 ou de niveau 3) et fit une série de modèles. C'est en fait un modèle complet car tous les deux-catégorie sous-ensemble d'un modèle multinomial est conditionnellement binomiale (c'est à dire si vous savez que c'est A ou B, alors A est un binôme de l'échantillon à partir de (A+B)); tous ensemble complet de paires est valable de paramétrage. - Dans ton cas, puisque les catégories sont un peu commandé je serais probablement paramétrer comme (pas de migration et la migration interne ou internationale), (internes et migrations internationales); cela vous met en place pour une comparaison avec un modèle ordinal (voir la
ordinal
package). - Merci beaucoup, Ben Bolker! Les deux suggestions sont en effet très utiles et je vais les explorer davantage.
Vous devez vous connecter pour publier un commentaire.
Il y a généralement deux façons de montage d'un multinomiale des modèles d'une variable catégorielle avec J groupes: (1) Simultanément l'estimation de J-1 contrastes; (2) l'Estimation séparée modèle logit pour chaque contraste.
Production de ces deux méthodes les mêmes résultats? Non, mais les résultats sont souvent similaires
Quelle méthode est la meilleure? Simultanément, la pose est plus précis (voir ci-dessous pour une explication de pourquoi)
Pourquoi quelqu'un d'utiliser différents modèles logit alors? (1) le
lme4
paquet n'a pas de routine pour simultanément côté multinomial modèles et il n'y a pas d'autres multiniveau package R qui pourrait faire cela. Afin de séparer les modèles logit sont actuellement la seule solution pratique si quelqu'un veut estimer multiniveau multinomial modèles dans R. (2) en tant Que puissant, les statisticiens ont soutenu (Begg et de Gris, 1984; Allison, 1984, p. 46-47), les modèles logit sont beaucoup plus flexibles, car ils permettent à l'indépendant de la spécification du modèle d'équation pour chaque contraste.Est-il légitime d'utiliser des modèles logit? Oui, avec quelques avertissements. Cette méthode est appelée la “Begg et Gris Rapprochement”. Begg et Gris (1984, p. 16) a montré que cette “individualisé méthode est très efficace”. Cependant, il ya une certaine perte d'efficacité et la Begg et Gris Approximation produit des plus grandes erreurs standard (Agresti, 2002, p. 274). En tant que tel, il est plus difficile d'obtenir des résultats significatifs avec cette méthode et les résultats peuvent être considérés comme conservateur. Cette perte d'efficacité est plus petite lorsque la catégorie de référence est grande (Begg et de Gris, 1984; Agresti 2002). R les paquets qui utilisent le Begg et Gris de l'Approximation (pas de multi-niveaux) comprennent
mlogitBMA
(Sevcikova et Barbarella, 2012).Pourquoi est une série de différentes modèles logit imprécis?
Dans mon premier exemple, nous avons une variable (
migration
) qui peut avoir trois valeursA
(pas de migration),B
(migration interne),C
(migrations internationales). Avec une seule variable prédictivex
(âge), multinomiale modèles sont paramétrées comme une série de binôme contrastes comme suit (Long et Cheng, 2004 p. 277):Pour ces contrastes les équations suivantes doit tenir:
Le problème est que ces équations (Eq. 4-6) sera dans la praxis tenez pas exactement, car les coefficients sont estimés sur la base légèrement différents échantillons puisque seuls les cas de la contrastées deux groupes sont utilisés und cas du troisième groupe sont omis. Les programmes estimer simultanément la multinomiale contrastes assurez-vous que l'Eq. 4-6 attente (Longue et Cheng, 2004 p. 277). Je ne sais pas exactement comment cela “simultanée” modèle de résolution de travaux – peut-être que quelqu'un peut fournir une explication? Logiciel faire montage simultané de plusieurs niveaux multinomial modèles comprennent MLwiN (Steele 2013, p. 4) et STATA (xlmlogit de commande, le Pape, 2014).
Références:
Agresti, A. (2002). Catégorique de l'analyse des données (2e ed.). Hoboken, NJ: John Wiley & Fils.
Allison, P. D. (1984). Événement de l'histoire de l'analyse. Thousand Oaks, CA: Sage Publications.
Begg, C. B., & Gray, R. (1984). Calcul de polychotomous de régression logistique paramètres à l'aide individualisée régressions. Biometrika, 71(1), 11-18.
Longue, S. J., & Cheng, S. (2004). Des modèles de régression pour des résultats catégoriques. Chez M. Hardy & A. Bryman (Eds.), Manuel d'analyse des données (pp. 258-285). London: SAGE Publications, Ltd.
Pape, R. (2014). Dans le feu des projecteurs: à la rencontre de Stata nouveau xlmlogit de commande. Stata News, 29(2), 2-3.
Sevcikova, H., & Barbarella, A. (2012). L'Estimation du modèle logit multinomial à l'aide de la Begg & Gris rapprochement.
Steele, F. (2013). Module 10: un Seul niveau et les modèles multiniveaux nominal réponses concepts. Bristol, U. K,: Centre pour les modèles à plusieurs niveaux.
Une ancienne question, mais je pense qu'une option viable a récemment émergé est
brms
, qui utilise l'approche BayesienneStan
programme pour exécuter le modèle Par exemple, si vous souhaitez exécuter une régression logistique multinomiale sur leiris
de données:Et d'obtenir une régression ordinale -- pas approprié pour
iris
, évidemment, vous auriez du commutateur de lafamily="categorical"
àfamily="acat"
(oucratio
ousratio
, selon le type de régression ordinale vous voulez) et assurez-vous que la variable dépendante estordered
.Clarification par Raphaël commentaire: Ce
brm
appel compile votre formule et les arguments en Stan code. Stan compile en C++ et utilise votre système compilateur C++ -- ce qui est nécessaire. Sur un Mac, par exemple, vous devrez peut-être installer le logiciel gratuit Outils de Développeur C++. Pas sûr au sujet de Windows. Linux doit avoir C++ est installé par défaut.)Clarification par Qaswed commentaire:
brms
gère facilement les modèles multiniveaux ainsi à l'aide de la formule R(1 | groupvar)
pour ajouter un groupe (aléatoire) d'interception pour un groupe,(1 + foo | groupvar)
pour ajouter un hasard origine et la pente, etc.sudo apt-get install libssl-dev
normal(0,8)
? Je comprends cela signifie une distribution normale avec une moyenne de 0 et un écart-type de 8, je me demande juste si c'est un moyen relativement sûr de choix avec un modèle simple, qui devrait bien se comporter. J'ai essayé de regarder dans Gelman, des guides sur l'faiblement informatif a priori, mais c'est au delà de moi.normal (0, 8)
est fondée sur des principes. Regardezcurve (dnorm (x, 0, 8), from=-20, to=20)
et note queqnorm (c(0.05, 0.95), 0, 8)
est-13.15883 13.15883
qui donne essentiellement les pentes et intercepte beaucoup de place mais élimine très peu probable valeurs.brms
gère facilement les modèles multiniveaux.)Voici une implémentation (pas le mien). Je venais de travail hors de ce code. De Plus, de cette façon, vous allez vraiment savoir ce qui se passe sous le capot.
http://www.nhsilbert.net/docs/rcode/multilevel_multinomial_logistic_regression.R
Je vous recommande d'utiliser le package "mlogit"
mlogit
paquet clairement les poignées (au moins à deux niveaux, par exemple, des mesures répétées ou des données de panel) à effets mixtes modèles multinomiaux. Ses algorithmes sont basés sur des simulations de méthodes du maximum de vraisemblance pour l'utilité aléatoire des modèles aussi bien documentés dans le Train (2009). Les méthodes sont essentiellement les mêmes que ceux qu'on appelle "fixe de l'échantillon simulé probabilité" par Demidenko (2005). Références Demidenko, E. (2005). Des Modèles mixtes: Théorie et Applications. Wiley-Interscience.Train, K. (2009). Choix discrets Méthodes de Simulation (Deuxième Édition). Cambridge: Cambridge University Press.bayesm
. [lien] (cran.r-project.org/web/packages/bayesm/index.html). La fonctionbayesm::rhierMnlRwMixture
traitera simple longitudinale/ mesures répétées modèles avec (mélange-)aléatoire Gaussien pentes et l'intercepte. Il existe un livre avec de nombreux exemples par les auteurs du paquet: Rossi, P. E., & Allenby, G. M. (2003). Les statistiques bayésiennes et de marketing. La Science Du Marketing, 22(3), 304-328.Je suis intrigué par le fait que cette technique est décrit comme "standard" et "équivalent", mais il pourrait très bien être une bonne solution pratique. (Suppose que je ferais mieux de vérifier le Allison et Dobson & Barnett références).
Pour la simple multinomial cas ( pas de clusters, de mesures répétées, etc.) Begg et Gris (1984) proposent d'utiliser k-1 binomiale logits à l'encontre d'une catégorie de référence comme une approximation (mais bon) dans de nombreux cas, à la pleine soufflé multinomial logit. Ils démontrent une certaine perte d'efficacité lors de l'utilisation d'une seule catégorie de référence, même si elle est petite pour les cas où un seul de haute fréquence de référence de la catégorie est de l'utiliser comme référence.
Agresti (2002: p. 274) fournit un exemple où il y a une petite augmentation dans la norme erreurs, même lorsque la ligne de base de catégorie constitue plus de 70% des 219 cas dans cinq catégorie exemple.
Peut-être que c'est pas une grosse affaire, mais je ne vois pas comment le rapprochement serait mieux d'ajouter une deuxième couche de l'aléatoire.
Références
Agresti, A. (2002). Catégorique de l'analyse des données. Hoboken, NJ: Wiley.
Begg, C. B., & Gray, R. (1984). Calcul de polychotomous de régression logistique paramètres à l'aide individualisée régressions. Biometrika, 71(1), 11-18.
Je fais affaire avec le même problème et une solution que j'ai trouvé semble recourir à la loi de poisson (loglinear/compter) l'équivalent de la logistique multinomiale modèle tel que décrit dans ce mailinglist, ces nice diapositives ou dans Agresti (2013: 353-356). Ainsi, il devrait être possible d'utiliser le
glmer(... family=poisson)
fonction de l'emballagelme4
avec un certain niveau d'agrégation des données.Référence:
Agresti, A. (2013) Catégorique de l'analyse des données. Hoboken, NJ: Wiley.