Puis-je utiliser des algorithmes glm pour effectuer une régression logistique multinomiale?

14

J'utilise spotfire (S ++) pour l'analyse statistique dans mon projet et je dois exécuter une régression logistique multinomiale pour un grand ensemble de données. Je sais que le meilleur algorithme aurait été mlogit, mais malheureusement ce n'est pas disponible en s ++. Cependant, j'ai la possibilité d'utiliser l'algorithme glm pour cette régression. Je veux clarifier deux choses ici:

1. Ma compréhension est-elle correcte que glm peut également être utilisé pour exécuter la régression logistique multinomiale?

  1. Si la réponse à la question précédente est oui, alors quels paramètres devraient être utilisés dans glm algo?

Merci,

Raghvendra
la source

Réponses:

9

Oui, avec un GLM de Poisson (modèle logarithmique linéaire), vous pouvez adapter des modèles multinomiaux. Les modèles multinomiaux logistiques ou log linéaires de Poisson sont donc équivalents.

Vous devez voir les nombres aléatoires comme des variables aléatoires de Poisson avec des moyennes μ_ {ij} et spécifier ce qui suit le modèle log-linéaire suivantμ i jyijμij

log(μij)=o+pi+cj+xiβj

Pour obtenir un modèle logit multinomial, les paramètres sont les suivants:

Un paramètre pour chaque observation multinomiale, par exemple des individus ou un groupe. Cela assure une reproduction exacte des dénominateurs multinomiaux et établit en fait l'équivalence de Poisson et du modèle multinomial. Ils sont fixes dans la vraisemblance multinomiale, mais aléatoires dans la vraisemblance de Poisson.pi

Un paramètre pour chaque catégorie de réponse. De cette façon, les chiffres peuvent être différents pour chaque catégorie de réponse et les marges peuvent être non uniformes.cj

Ce qui vous intéresse vraiment, ce sont les termes d'interaction qui représentent les effets de sur les log-cotes de la réponse .x i jxiβjxij

Les log-odds peuvent être simplement calculées par . C'est la cote logarithmique que l'observation i tombera dans la catégorie de réponse j par rapport à la catégorie de réponse .klog(μij/μik)=(cjck)+xi(βjβk)k

Ensuite, les paramètres du modèle logit multinomial (indiqués en lettres latines) peuvent être obtenus sous forme de différences entre les paramètres du modèle log-linéaire correspondant, c'est-à-dire et .b j = β j - β kaj=αjαkbj=βjβk

Momo
la source
Merci Momo. C'est vraiment utile. Mon logiciel me permet de choisir Family comme "possion" et Link comme "log" lors de l'exécution de l'algorithme GLM. Je pense donc que c'est exactement ce qui est requis ici.
Raghvendra
7

Oui, vous pouvez le faire, et c'est précisément ce que fait le package R GLMNET pour la régression logistique multinomiale. Écriture de la fonction log-vraisemblance comme:

LogL=icniclog(pic)

Où désigne les observations et désigne les catégories multinomiales est le nombre observé pour l'observation dans la catégorie . Les observations sont définies par leurs combinaisons de covariables uniques - ou bien nous pouvons autoriser les doublons et définir chaque sorte que nous ayons des données catégoriques "binaires" (.... je ne sais pas quel est le pluriel de binaire. ...). Pour la régression logistique, les probabilités sont définies comme suit:c n i c i c n i c = 1icnicicnic=1

pic=exp(xiTβc)cexp(xiTβc)

Il s'agit d'un paramétrage inférieur au rang complet et peut être utile si vous utilisez la probabilité pénalisée (comme GLMNET). Nous pourrions en principe utiliser IRLS / newton rhapson sur la matrice bêta complète , mais vous vous retrouvez avec des matrices de poids non diagonales. Alternativement, nous pouvons optimiser le "style Gibbs" en fixant toutes les catégories bêta sauf une, puis en optimisant juste au-dessus de cette catégorie. Passez ensuite à la catégorie suivante, et ainsi de suite. Vous pouvez le voir parce que les probabilités ont la forme(β1,,βC)

pic=B

pic=exp(xiTβc)exp(xiTβc)+A where Aβc=0
pic=Bexp(xiTβc)+A where Bβc=0

Que l'expansion quadratique autour de aura la même forme que pour la régression logistique, mais avec les poids IRLS calculés différemment - bien que nous ayons toujours dans la mise à jour habituelle de la version bêta.βcWii,c=nicpic(1pic)(XTWX)1XTWY

probabilitéislogique
la source
J'essaie de mettre en œuvre une régression logistique multinomiale en utilisant la variante IRLS QR Newton. Le code fonctionne pour d'autres modèles GLM, mais n'a pas réussi à faire fonctionner mlogit. Le serait-il le jacobien de la fonction softmax qui me permettrait de calculer le Cholesky une seule fois par itération plutôt que fois pour résoudre pour chaque ensemble de poids par résultat? Wk
José Bayoán Santiago Calderón
Étant donné qu'il ne serait pas diagonal, il ne serait pas bien adapté à un grand nombre d'observations, non? Si vous optez pour le "style Gibbs", la soustraction des paramètres de catégorie de base de la matrice ferait-elle avant ou après la prédiction? β
José Bayoán Santiago Calderón
Lorsque vous parlez de "cholesky once" vs "cholesky k times", vous devez noter que les matrices sont de dimensions différentes - s'il y a colonnes dans la "once" est pour une matrice de taille et les "k times" sont pour une matrice de taillepXpkp
probabilitéislogique