Eu executei um modelo de logit multinomial no JMP e obtive resultados que incluíam o AIC e os valores de p do qui-quadrado para cada estimativa de parâmetro. O modelo tem um resultado categórico e 7 variáveis explicativas categóricas.
Depois, encaixeimultinom
o que eu pensava que construiria o mesmo modelo no R, usando a função no pacote nnet .
O código era basicamente:
fit1 <- multinom(y ~ x1+x2+...xn,data=mydata);
summary(fit1);
No entanto, os dois dão resultados diferentes. Com o JMP, o AIC é 2923.21 e com nnet::multinom
o AIC é 3116.588.
Então, minha primeira pergunta é: um dos modelos está errado?
A segunda coisa é que o JMP fornece valores de p qui-quadrado para cada estimativa de parâmetro, o que eu preciso. A execução do resumo no multinom fit1
não - apenas fornece as estimativas, AIC e Deviance.
Minha segunda pergunta é assim: existe uma maneira de obter os valores-p para o modelo e as estimativas ao usar nnet::multinom
?
Eu sei que o mlogit é outro pacote R para isso e parece que sua saída inclui os valores-p; no entanto, não consegui executar mlogit
usando meus dados. Acho que os dados foram formatados corretamente, mas diziam que tinha uma fórmula inválida. Usei a mesma fórmula que usei multinom
, mas parece que requer um formato diferente usando um pipe e não entendo como isso funciona.
Obrigado.
Respostas:
Tenho certeza de que você já encontrou suas soluções, pois este post é muito antigo, mas para aqueles de nós que ainda procuram soluções - eu achei http://youtu.be/-Cp_KP9mq94 uma ótima fonte de instruções sobre como execute um modelo de regressão logística multinomial em R usando o pacote mlogit. Se você for ao site da academia de economia, ela tem todos os scripts, dados para R e SAS e STATA, eu acho, ou o SPSS, um deles.
O que explica como / por que e o que fazer para transformar seus dados no formato "longo" vs "amplo". Provavelmente você tem um formato amplo, que requer transformação.
https://sites.google.com/site/econometricsacademy/econometrics-models/multinomial-probit-and-logit-models
fonte
Em geral, as diferenças nos valores da AIC entre duas partes diferentes de software não são totalmente surpreendentes. O cálculo das probabilidades geralmente envolve uma constante que é a mesma entre diferentes modelos dos mesmos dados. Diferentes desenvolvedores podem fazer escolhas diferentes sobre o que deixar dentro ou fora dessa constante. Quando você deve se preocupar é quando as diferenças nos valores da AIC entre dois modelos diferem. Na verdade, acabei de notar um argumento que
multinom()
permite alterar como as linhas com valores X idênticos são recolhidas e que isso afeta a linha de base do desvio e, portanto, a AIC. Você pode tentar diferentes valores do argumento summ e ver se isso faz os desvios concordarem. Não sabemos o que o JMP está fazendo! :)Se os coeficientes estimados e os erros padrão forem os mesmos, você estará bem. Se os coeficientes não forem os mesmos, não esqueça que o JMP pode escolher um resultado de linha de base diferente para calcular os coeficientes.
multinom()
faz escolhas diferentes demlogit()
, por exemplo.Obter valores de p a partir do resultado summary () de multinom () é bastante fácil. Não consigo reproduzir seus modelos, então aqui está o exemplo da página de ajuda em multinom ():
Concordo que descobrir o pacote mlogit é um desafio! Leia as vinhetas com cuidado. Eles ajudam.
fonte
Fishing
conjunto de dados com multinom?Você também pode tentar executar um logit multinomial usando o pacote glmnet. Não sei ao certo como forçá-lo a manter todas as variáveis, mas tenho certeza de que é possível.
fonte