Wie erhalte ich p-Werte mit der multinom
Funktion von nnet
package in R
?
Ich habe einen Datensatz, der aus "Pathologie-Scores" (Abwesend, Mild, Schwerwiegend) als Ergebnisvariable und zwei Haupteffekten besteht: Alter (zwei Faktoren: zwanzig / dreißig Tage) und Behandlungsgruppe (vier Faktoren: infiziert ohne ATB; infiziert +) ATB1; infiziert + ATB2; infiziert + ATB3).
Zuerst habe ich versucht, ein ordinales Regressionsmodell anzupassen, das angesichts der Merkmale meiner abhängigen Variablen (Ordinalzahl) angemessener erscheint. Die Annahme der Quotenproportionalität wurde jedoch (grafisch) erheblich verletzt, was mich dazu veranlasste, stattdessen ein multinomiales Modell unter Verwendung des nnet
Pakets zu verwenden.
Zuerst habe ich die Ergebnisstufe ausgewählt, die ich als Basiskategorie verwenden möchte:
Data$Path <- relevel(Data$Path, ref = "Absent")
Dann musste ich Basiskategorien für die unabhängigen Variablen festlegen:
Data$Age <- relevel(Data$Age, ref = "Twenty")
Data$Treat <- relevel(Data$Treat, ref="infected without ATB")
Das Model:
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
Die Ausgabe:
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
Für eine Weile konnte ich keine Möglichkeit finden, die Werte für das Modell und die Schätzungen bei der Verwendung zu ermitteln . Gestern bin ich auf einen Beitrag gestoßen, in dem der Autor ein ähnliches Problem in Bezug auf die Schätzung von Werten für Koeffizienten vorgebracht hat ( wie man ein multinomiales Logit-Modell in R aufbaut und schätzt? ). Dort schlug ein Blogger vor, dass es ziemlich einfach sei, Werte aus dem Ergebnis von zu erhalten , indem man zuerst die Werte wie folgt abruft:p p tnnet:multinom
summary
multinom
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
Peter Dalgard: "Für einen zweiseitigen Wert fehlt mindestens der Faktor 2. Es ist normalerweise ein Fehler, die Verteilung für eine Statistik zu verwenden. Für aggregierte Daten kann dies der Fall sein ein sehr schlimmer Fehler. " Laut Brian Ripley "ist es auch ein Fehler, Wald-Tests für Anpassungen zu verwenden, da sie unter denselben (möglicherweise schwerwiegenden) Problemen leiden wie Binomialanpassungen. Verwenden Sie Konfidenzintervalle mit Profilwahrscheinlichkeit (für die das Paket Software bereitstellt) oder wenn Sie testen müssen, Likelihood-Ratio-Tests (dito). "t zmultinom
Ich muss nur in der Lage sein, zuverlässige Werte abzuleiten .
nnet
deranova()
Funktion von verwenden.