32 votos

Obtener los valores de p para "multinorm" en R (nnet paquete)

¿Cómo puedo obtener los valores de p mediante la multinorm función de nnet paquete en R?

Tengo un conjunto de datos que consta de "resultados de la Patología" (Ausente, Leve, Grave) como variable de resultado, y dos efectos principales: la Edad (dos factores: veinte / treinta días) y el Tratamiento (Grupo de cuatro factores: infectado sin ATB; infectadas + ATB1; infectadas + ATB2; infectadas + ATB3).

Primero traté de ajustar un modelo de regresión ordinal, que parece más apropiado, dadas las características de mi variable dependiente (ordinal). Sin embargo, la asunción de probabilidades de proporcionalidad gravemente violado (gráficamente), que me llevó a utilizar un modelo multinomial lugar, el uso de la nnet paquete.

Primero elegí el resultado nivel que necesito para utilizar como base de referencia de la categoría:

Data$Path <- relevel(Data$Path, ref = "Absent")

Entonces, necesitaba establecer línea de base de las categorías de las variables independientes:

Data$Age <- relevel(Data$Age, ref = "Twenty")
Data$Treat <- relevel(Data$Treat, ref="infected without ATB") 

El modelo:

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

El resultado:

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

Por un tiempo, yo no podía encontrar una manera de obtener el $p$-valores para el modelo y estimaciones cuando se utiliza nnet:multinom. Ayer me encontré con un post donde el autor presentó un problema similar respecto a la estimación de $p$-valores de los coeficientes de (Cómo configurar y estimación de un modelo logit multinomial en el R?). Allí, un bloguero sugirió que llegar a $p$-valores de la summary resultado de multinom es bastante fácil, por primera vez la $t$valores de la siguiente manera:

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

Según Peter Dalgard, "Hay al menos un factor de falta de 2 para una de dos colas $p$-valor. Normalmente es un error usar el $t$-distribución de lo que realmente es una $z$-estadística; para los datos agregados, puede ser un muy grave error." De acuerdo a Brian Ripley, "que también es un error el uso de pruebas de Wald para multinom encaja, ya que sufren de la misma (potencialmente graves) problemas como la binomial se adapta. Utilice el perfil de la probabilidad de los intervalos de confianza (para que el paquete no ofrecen software), o si usted debe probar, la probabilidad de la relación de pruebas (ídem)."

Sólo tengo que ser capaz de derivar fiable $p$-valores.

29voto

kentaromiura Puntos 3361

¿Qué acerca del uso

z <- summary(test)$coefficients/summary(test)$standard.errors
# 2-tailed Wald z tests to test significance of coefficients
p <- (1 - pnorm(abs(z), 0, 1)) * 2
p

Básicamente, esto se basa en la estimación de los coeficientes de relación con su error estándar, y el uso de una prueba z para probar en contra de una diferencia significativa con cero. Tenga en cuenta que esto se haría a través de una normal (z) la aproximación, aunque. O usted podría utilizar

library(AER)
coeftest(test)

Cociente de probabilidad de las pruebas puede obtener utilizando

library(afex)
set_sum_contrasts()
library(car)
Anova(test,type="III")

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X