Rの「マルチノム」のp値の取得(nnetパッケージ)


19

パッケージのmultinom関数を使用してp値を取得するにはどうすればよいですか?nnetR

結果変数として「病理スコア」(不在、軽度、重度)、および2つの主な効果で構成されるデータセットがあります。 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

pnnet:multinomppsummarymultinomt

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

ptzmultinom

p


nnetanova()関数を使用して、完全なモデルと縮小されたモデルの尤度比検定でモデル比較を使用できます。
カラカル

回答:


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

基本的に、これは標準誤差に対する推定係数に基づいており、a検定を使用して両側検定に基づいてゼロとの有意差を検定します。2の係数は、上記のピーターダルガードの問題を修正し(1つのテールのテストではなく、2テールのテストが必要なため必要です)、t検定ではなくz検定を使用してもう一方を解決しますあなたが言及する問題。

を使用して同じ結果(Wald z検定)を取得することもできます。

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")

ペアワイズテューキーポストホックテストを実行する場合は、他の投稿で説明されているように、lsmeansパッケージ使用して取得できます。


手順についてもう少し説明すると、OPに役立つ場合があります。
モモ14

1
もう少し説明を追加しました...
トムウェンセリアーズ

1
Waldのz検定オプションを拡張した優れたページを次に示し
r
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.