Dans l'analyse des données catégorielles, nous utilisons souvent la régression logistique pour estimer les relations entre les résultats binomiaux et une ou plusieurs covariables.
Je comprends que c'est un type de modèle linéaire généralisé (GLM). Dans R, ceci est implémenté avec la fonction glm
en utilisant l'argument family=binomial
. D'un autre côté, dans l'analyse catégorielle des données, il existe des modèles multinomiaux. Ne sont-ce pas des GLM? Et ne peuvent-ils pas être estimés dans R à l'aide de la fonction glm
?
(Dans ce publication pour la régression logistique multinomiale . L'auteur utilise un package externe mlogit
, qui semble également obsolète)
Pourquoi la classe de GLM est-elle limitée aux résultats dichotomiques? Est-ce parce que la classification multi-classes peut être traitée comme plusieurs modèles de classification binaires?
Les GLM dans R sont estimés avec Fisher Scoring. Deux approches du logit multi-catégories viennent à l'esprit: les modèles de cotes proportionnelles et les modèles log-linéaires ou la régression multinomiale.
Le modèle de cotes proportionnelles est un type spécial de modèle de lien cumulatif et est implémenté dans le package MASS
. Il n'est pas estimé avec le score de Fisher, donc la valeur par défaut glm.fit
work-horse ne serait pas en mesure d'estimer un tel modèle. Fait intéressant, cependant, les modèles de liens cumulatifs sont des GLM et ont été discutés dans le texte éponyme par McCullogh et Nelder. Un problème similaire se retrouve avec les GLM binomiaux négatifs: ce sont des GLM au sens strict d'une fonction de lien, et un modèle de probabilité, mais nécessitent des routines d'estimation spécialisées. En ce qui concerne la fonction R glm
, il ne faut pas la considérer comme un estimateur exhaustif pour chaque type de GLM.
nnet
a une implémentation d'un estimateur de modèle log-linéaire. Il est conforme à leur estimateur de réseau neuronal plus sophistiqué utilisant l'entropie soft-max, qui est une formulation équivalente (la théorie est là pour le montrer). Il s'avère que vous pouvez estimer les modèles log-linéaires avec glm
par défaut R si vous le souhaitez. La clé consiste à voir le lien entre la logistique et la régression du poisson. En reconnaissant les termes d'interaction d'un modèle de comptage (différence de taux relatifs logarithmiques) comme un terme de premier ordre dans un modèle logistique pour un résultat (rapport de cotes logarithmiques), vous pouvez estimer les mêmes paramètres et les mêmes SE en "conditionnant" sur les marges du tableau de contingence $ K\fois 2 $ pour un résultat multi-catégorie. ne question SE connexe sur ce fond est ici
Prenons comme exemple ce qui suit en utilisant les données sur le cancer du poumon VA du package MASS:
> summary(multinom(cell ~ factor(treat), data=VA))
# weights: 12 (6 variable)
initial value 189.922327
iter 10 value 182.240520
final value 182.240516
converged
Call:
multinom(formula = cell ~ factor(treat), data = VA)
Coefficients:
(Intercept) factor(treat)2
2 6.931413e-01 -0.7985009
3 -5.108233e-01 0.4054654
4 -9.538147e-06 -0.5108138
Std. Errors:
(Intercept) factor(treat)2
2 0.3162274 0.4533822
3 0.4216358 0.5322897
4 0.3651485 0.5163978
Residual Deviance: 364.481
AIC: 376.481
Par rapport à:
> VA.tab <- table(VA[, c('cell', 'treat')])
> summary(glm(Freq ~ cell * treat, data=VA.tab, family=poisson))
Call:
glm(formula = Freq ~ cell * treat, family = poisson, data = VA.tab)
Deviance Residuals:
[1] 0 0 0 0 0 0 0 0
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.708e+00 2.582e-01 10.488 <2e-16 ***
cell2 6.931e-01 3.162e-01 2.192 0.0284 *
cell3 -5.108e-01 4.216e-01 -1.212 0.2257
cell4 -1.571e-15 3.651e-01 0.000 1.0000
treat2 2.877e-01 3.416e-01 0.842 0.3996
cell2:treat2 -7.985e-01 4.534e-01 -1.761 0.0782 .
cell3:treat2 4.055e-01 5.323e-01 0.762 0.4462
cell4:treat2 -5.108e-01 5.164e-01 -0.989 0.3226
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 1.5371e+01 on 7 degrees of freedom
Residual deviance: 4.4409e-15 on 0 degrees of freedom
AIC: 53.066
Number of Fisher Scoring iterations: 3
Comparez les paramètres d'interaction et les principaux niveaux de traitement dans un modèle au second. Comparez également l'interception. Les AIC sont différents parce que le modèle log-linéaire est un modèle de probabilité même pour les marges du tableau qui sont conditionnées par d'autres paramètres du modèle, mais en termes de prédiction et d'inférence, ces deux approches donnent des résultats identiques.
Bref, question piège! glm
gère la régression logistique multi-catégories, il suffit de mieux comprendre ce qui constitue de tels modèles.