Come ottengo i valori p usando la multinom
funzione del nnet
pacchetto in R
?
Ho un set di dati che consiste di "punteggi patologici" (assente, lieve, grave) come variabile di risultato e due effetti principali: età (due fattori: venti / trenta giorni) e gruppo di trattamento (quattro fattori: infetti senza ATB; infetti + ATB1; infetto + ATB2; infetto + ATB3).
Innanzitutto ho cercato di adattare un modello di regressione ordinale, che sembra più appropriato date le caratteristiche della mia variabile dipendente (ordinale). Tuttavia, l'ipotesi della proporzionalità delle probabilità è stata gravemente violata (graficamente), il che mi ha spinto a utilizzare invece un modello multinomiale, usando il nnet
pacchetto.
Innanzitutto ho scelto il livello di risultato che devo utilizzare come categoria di base:
Data$Path <- relevel(Data$Path, ref = "Absent")
Quindi, avevo bisogno di impostare le categorie di base per le variabili indipendenti:
Data$Age <- relevel(Data$Age, ref = "Twenty")
Data$Treat <- relevel(Data$Treat, ref="infected without ATB")
Il modello:
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
Il risultato:
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
Per un po ', non sono riuscito a trovare un modo per ottenere i valori per il modello e le stime durante l'utilizzo . Ieri mi sono imbattuto in un post in cui l'autore ha presentato un problema simile per quanto riguarda la stima dei valori per coefficienti ( Come impostare e stimare un modello logit multinomiale in R? ). Lì, un blogger ha suggerito che ottenere valori dal risultato di è abbastanza semplice, ottenendo prima i valori come segue:nnet: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
Secondo Peter Dalgard, "C'è almeno un fattore 2 mancante per un valore due code . Di solito è un errore usare la distribuzione per ciò che è veramente una statistica ; per i dati aggregati, può essere un brutto errore ". Secondo Brian Ripley, "è anche un errore utilizzare i test Wald per gli attacchi, poiché soffrono degli stessi problemi (potenzialmente gravi) degli attacchi binomiali. Utilizzare intervalli di confidenza della probabilità del profilo (per i quali il pacchetto fornisce software), oppure se è necessario eseguire il test, test del rapporto di verosimiglianza (idem). "multinom
Devo solo essere in grado di derivare valori affidabili .
nnet
laanova()
funzione di.