J'ai exécuté un modèle logit multinomial dans JMP et obtenu des résultats qui comprenaient l'AIC ainsi que les valeurs de p chi carré pour chaque estimation de paramètre. Le modèle a un résultat catégorique et 7 variables explicatives catégoriques.
J'ai ensuite adapté ce que je pensais construire le même modèle dans R, en utilisant la multinom
fonction dans le package nnet .
Le code était essentiellement:
fit1 <- multinom(y ~ x1+x2+...xn,data=mydata);
summary(fit1);
Cependant, les deux donnent des résultats différents. Avec JMP, l'AIC est 2923,21, et avec nnet::multinom
l'AIC est 3116,588.
Ma première question est donc la suivante: l'un des modèles est-il faux?
La deuxième chose est que JMP donne des valeurs de p chi carré pour chaque estimation de paramètre, dont j'ai besoin. Le résumé de fonctionnement sur le multinom fit1
ne le fait pas - il donne simplement les estimations, AIC et Deviance.
Ma deuxième question est donc la suivante: existe-t-il un moyen d'obtenir les valeurs de p pour le modèle et les estimations lors de l'utilisation nnet::multinom
?
Je sais que mlogit est un autre package R pour cela et il semble que sa sortie inclut les valeurs p; cependant, je n'ai pas pu exécuter en mlogit
utilisant mes données. Je pense que les données avaient été correctement formatées, mais cela indiquait que j'avais une formule non valide. J'ai utilisé la même formule que celle que j'ai utilisée multinom
, mais il semble que cela nécessite un format différent à l'aide d'un tuyau et je ne comprends pas comment cela fonctionne.
Merci.
Réponses:
Je suis sûr que vous avez déjà trouvé vos solutions car cet article est très ancien, mais pour ceux d'entre nous qui recherchent toujours des solutions - j'ai trouvé que http://youtu.be/-Cp_KP9mq94 est une excellente source d'instructions sur la façon de exécuter un modèle de régression logistique multinomial dans R en utilisant le package mlogit. Si vous allez sur le site de l'académie d'écononométrie, elle a tous les scripts, les données pour R et SAS et STATA, je pense ou SPSS, l'un d'eux.
Quel type explique comment / pourquoi et quoi faire pour transformer vos données au format "long" vs "large". Vous avez très probablement un format large, qui nécessite une transformation.
https://sites.google.com/site/econometricsacademy/econometrics-models/multinomial-probit-and-logit-models
la source
En général, les différences de valeurs AIC entre deux logiciels différents ne sont pas entièrement surprenantes. Le calcul des probabilités implique souvent une constante qui est la même entre différents modèles des mêmes données. Différents développeurs peuvent faire des choix différents sur ce qu'il faut laisser dans ou hors de cette constante. Lorsque vous devez vous inquiéter, c'est lorsque les différences de valeurs AIC entre deux modèles diffèrent. En fait, je viens de remarquer un argument pour
multinom()
vous permettre de modifier la façon dont les lignes avec des valeurs X identiques sont réduites, et que cela affecte la ligne de base de la déviance, et donc l'AIC. Vous pouvez essayer différentes valeurs de l'argument summ et voir si cela rend les divergences d'accord. Nous ne savons pas ce que fait JMP! :)Si les coefficients estimés et les erreurs standard sont les mêmes, alors vous êtes bon. Si les coefficients ne sont pas les mêmes, n'oubliez pas que JMP peut choisir un résultat de base différent pour calculer les coefficients.
multinom()
fait des choix différentsmlogit()
, par exemple.Obtenir des valeurs de p à partir du résultat summary () de multinom () est assez facile. Je ne peux pas reproduire vos modèles, alors voici l'exemple de la page d'aide sur multinom ():
Je suis d'accord que trouver le paquet mlogit est un peu un défi! Lisez attentivement les vignettes. Ils aident.
la source
Fishing
ensemble de données avec multinom?Vous pouvez également essayer d'exécuter un logit multinomial à l'aide du package glmnet. Je ne sais pas comment le forcer à conserver toutes les variables, mais je suis sûr que c'est possible.
la source