R (nnet 패키지)에서 "multinom"에 대한 p- 값 얻기


19

패키지 multinom기능을 사용하여 p- 값을 얻으려면 어떻게해야 합니까?nnetR

결과 변수로 "병리학 점수"(Absent, Mild, Severe)와 나이 (두 가지 요소 : 20/30 일) 및 치료 그룹 (4 가지 요소 : ATB없이 감염 됨; 감염된 +)으로 구성된 데이터 세트가 있습니다. ATB1; 감염된 + ATB2; 감염된 + ATB3).

먼저 서수 회귀 모형을 적합 시키려고했는데, 이는 종속 변수 (선형)의 특성을 고려할 때 더 적절 해 보입니다. 그러나 확률 비례의 가정은 (그래픽으로) 심각하게 위반되어 nnet패키지를 사용하는 대신 다항식 모델을 사용해야했습니다 .

먼저 기준 범주로 사용해야하는 결과 수준을 선택했습니다.

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

그런 다음 독립 변수에 대한 기준 범주를 설정해야했습니다.

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

모델:

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

출력 :

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

nnet:multinomsummarymultinom

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


다음을 사용하여 전체 감소 모델의 우도 비 테스트와 모델 비교를 사용할 수 nnetanova()기능을.
caracal

답변:


14

사용에 대한

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

기본적으로 이것은 표준 오차에 대한 추정 계수를 기반으로하며 z- 꼬리 검정을 사용하여 양측 검정을 기반으로 0과의 유의 한 차이에 대해 검정합니다. 2의 인수는 Peter Dalgaard가 위에서 언급 한 문제를 수정하고 (단 하나의 꼬리가 아닌 두 개의 꼬리가 달린 테스트를 원하기 때문에 필요함) t- 테스트가 아닌 z- 테스트를 사용하여 다른 문제를 해결합니다. 당신이 언급 한 문제.

다음을 사용하여 동일한 결과 (Wald z-tests)를 얻을 수도 있습니다

library(AER)
coeftest(test)

우도 비율 검정은 일반적으로 Wald z 검정보다 정확한 것으로 간주됩니다 (후자는 정규 근사를 사용하고 LR 검정은 사용하지 않음).

library(afex)
set_sum_contrasts() # use sum coding, necessary to make type III LR tests valid
library(car)
Anova(test,type="III")

페어 별 Tukey posthoc 테스트를 수행하려면 다른 게시물에서 설명한lsmeans 패키지 사용하여 얻을 수 있습니다 !


단계에 대한 자세한 설명은 OP에 도움이 될 수 있습니다.
Momo

1
지금 조금 더 설명을 추가했습니다 ...
Tom Wenseleers

1
다음은 Wald z-test 옵션에서 확장되는 유용한
DirtStats
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.