Comment obtenir des valeurs de p en utilisant la multinom
fonction de nnet
package dans R
?
J'ai un ensemble de données qui se compose de «scores de pathologie» (absents, légers, graves) comme variable de résultat, et deux effets principaux: l'âge (deux facteurs: vingt / trente jours) et le groupe de traitement (quatre facteurs: infecté sans ATB; infecté + ATB1; infecté + ATB2; infecté + ATB3).
J'ai d'abord essayé d'adapter un modèle de régression ordinale, qui semble plus approprié compte tenu des caractéristiques de ma variable dépendante (ordinale). Cependant, l'hypothèse de proportionnalité des cotes a été gravement violée (graphiquement), ce qui m'a incité à utiliser un modèle multinomial à la place, en utilisant le nnet
package.
J'ai d'abord choisi le niveau de résultat que je dois utiliser comme catégorie de référence:
Data$Path <- relevel(Data$Path, ref = "Absent")
Ensuite, je devais définir des catégories de base pour les variables indépendantes:
Data$Age <- relevel(Data$Age, ref = "Twenty")
Data$Treat <- relevel(Data$Treat, ref="infected without ATB")
Le modèle:
test <- multinom(Path ~ Treat + Age, data = Data)
# weights: 18 (10 variable)
initial value 128.537638
iter 10 value 80.623608
final value 80.619911
converged
Le résultat:
Coefficients:
(Intercept) infected+ATB1 infected+ATB2 infected+ATB3 AgeThirty
Moderate -2.238106 -1.1738540 -1.709608 -1.599301 2.684677
Severe -1.544361 -0.8696531 -2.991307 -1.506709 1.810771
Std. Errors:
(Intercept) infected+ATB1 infected+ATB2 infected+ATB3 AgeThirty
Moderate 0.7880046 0.8430368 0.7731359 0.7718480 0.8150993
Severe 0.6110903 0.7574311 1.1486203 0.7504781 0.6607360
Residual Deviance: 161.2398
AIC: 181.2398
pt(abs(summary1$coefficients / summary1$standard.errors), df=nrow(Data)-10, lower=FALSE)
(Intercept) infected+ATB1 infected+ATB2 infected+ATB3 AgeThirty
Moderate 0.002670340 0.08325396 0.014506395 0.02025858 0.0006587898
Severe 0.006433581 0.12665278 0.005216581 0.02352202 0.0035612114
multinom
la source
nnet
laanova()
fonction de.Réponses:
Qu'en est-il de l'utilisation
Fondamentalement, cela serait basé sur les coefficients estimés par rapport à leur erreur standard, et utiliserait le test z pour tester une différence significative avec zéro sur la base d'un test bilatéral. Le facteur de deux corrige le problème évoqué par Peter Dalgaard (vous en avez besoin parce que vous voulez un test à deux queues, pas un à une) et il utilise un test z, plutôt qu'un test t, pour résoudre l'autre problème que vous mentionnez.
Vous pouvez également obtenir le même résultat (Wald z-tests) en utilisant
Les tests de rapport de vraisemblance sont généralement considérés comme plus précis que les tests de Wald z (ces derniers utilisent une approximation normale, les tests LR non), et ceux-ci peuvent être obtenus en utilisant
Si vous souhaitez effectuer des tests posthoc Tukey par paire, alors ceux-ci peuvent être obtenus en utilisant le
lsmeans
package comme expliqué dans mon autre article !la source