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 .
quelle
nnet
deranova()
Funktion von verwenden.Antworten:
Was ist mit
Grundsätzlich würde dies auf den geschätzten Koeffizienten in Bezug auf ihren Standardfehler basieren und einen Zweistufentest verwenden, um auf der Grundlage eines zweiseitigen Tests gegen eine signifikante Differenz mit Null zu testen. Der Faktor zwei korrigiert das Problem, auf das Peter Dalgaard oben Bezug genommen hat (Sie brauchen es, weil Sie einen zweiseitigen Test wollen, keinen einseitigen), und es wird ein Z-Test anstelle eines T-Tests verwendet, um den anderen zu lösen Problem, das Sie erwähnen.
Sie können das gleiche Ergebnis (Wald-Z-Tests) auch mit erhalten
Likelihood-Ratio-Tests werden im Allgemeinen als genauer angesehen als Wald-z-Tests (letztere verwenden eine normale Näherung, LR-Tests nicht), und diese können mithilfe von ermittelt werden
Wenn Sie paarweise Tukey-Post-Hoc-Tests durchführen möchten, können Sie diese mit dem
lsmeans
Paket erhalten, wie in meinem anderen Beitrag erläutert !quelle