以下の説明は、ロジスティック回帰に限定されず、通常の線形回帰と他のGLMにも等しく適用されます。通常、R
カテゴリの1レベルを除外し、係数はこの参照クラス(またはベースラインクラスと呼ばれることもあります)に対する各クラスの違いを示します(これは、ダミーコーディングまたは治療コントラストと呼ばれます。異なるコントラストオプションの優れた概要については、こちらをR
ご覧ください。)。現在のコントラストを表示するには、と入力します。通常、カテゴリ変数のレベルをアルファベット順に並べ、最初のクラスを参照クラスとします。これは常に最適であるとは限らず、入力することで変更できます(ここでは、新しい変数で参照クラスを「c」に設定します)R
options("contrasts")
R
new.variable <- relevel(old.variable, ref="c")
。カテゴリ変数のすべてのレベルの各係数に対して、参照クラスと他のクラスの係数間のペアワイズ差がゼロと異なるかどうかをテストするために、ウォルドテストが実行されます。これは、回帰表のz値とp値です。1つのカテゴリクラスのみが重要である場合、これは変数全体が無意味であることを意味せず、モデルから削除する必要があります。あなたは実行することにより、変数の全体的な効果を確認することができます尤度比検定を:フィット二つのモデル、変数と型なしで1つずつanova(model1, model2, test="LRT")
ではR
(以下の例を参照します)。以下に例を示します。
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(my.mod)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.989979 1.139951 -3.500 0.000465 ***
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank2 -0.675443 0.316490 -2.134 0.032829 *
rank3 -1.340204 0.345306 -3.881 0.000104 ***
rank4 -1.551464 0.417832 -3.713 0.000205 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
rank1
rank
rank1
rank
rank1
rank2
− 0.675rank1
rank2
− 3.99 − 0.675 = − 4.67rank1
rank1
。- 1
モデル式に追加してすべての係数を直接表示することにより、切片なしでモデルを近似することもできます。
my.mod2 <- glm(admit ~ gre + gpa + rank - 1, data = mydata, family = "binomial")
summary(my.mod2) # no intercept model
Coefficients:
Estimate Std. Error z value Pr(>|z|)
gre 0.002264 0.001094 2.070 0.038465 *
gpa 0.804038 0.331819 2.423 0.015388 *
rank1 -3.989979 1.139951 -3.500 0.000465 ***
rank2 -4.665422 1.109370 -4.205 2.61e-05 ***
rank3 -5.330183 1.149538 -4.637 3.54e-06 ***
rank4 -5.541443 1.138072 -4.869 1.12e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ここで切片がなくなっており、係数がrank1
最初のモデルの切片になっていることに注意してください。ここで、Wald検定は、係数間のペアワイズ差ではなく、個々の係数がゼロであるという仮説をチェックします。繰り返しますが、すべての係数がrank
ゼロと異なるという証拠があります。最後に、全体の変数がいるかどうかを確認するためにrank
モデルのフィット感を向上させ、我々は(と一つのモデルをフィットmy.mod1
)、変数なしの1 rank
(my.mod2
)と尤度比検定を実施しています。のすべての係数rank
がゼロであるという仮説をテストします:
my.mod1 <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") # with rank
my.mod2 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial") # without rank
anova(my.mod1, my.mod2, test="LRT")
Analysis of Deviance Table
Model 1: admit ~ gre + gpa + rank
Model 2: admit ~ gre + gpa
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 394 458.52
2 397 480.34 -3 -21.826 7.088e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
尤度比検定は非常に重要であり、変数rank
はモデル内に残る必要があると結論付けます。
この投稿も非常に興味深いものです。
admit ~ 1
vsadmit ~ rank - 1
?