Selain jawaban @ gung, saya akan mencoba memberikan contoh anova
fungsi yang sebenarnya diuji. Saya harap ini memungkinkan Anda untuk memutuskan tes apa yang sesuai untuk hipotesis yang Anda minati.
Mari kita asumsikan bahwa Anda memiliki variabel prediktor hasil dan 3: x 1 , x 2 , dan x 3 . Sekarang, jika model regresi logistik Anda akan . Saat Anda menjalankan , fungsi membandingkan model berikut dalam urutan berurutan:yx1x2x3my.mod <- glm(y~x1+x2+x3, family="binomial")
anova(my.mod, test="Chisq")
glm(y~1, family="binomial")
vs. glm(y~x1, family="binomial")
glm(y~x1, family="binomial")
vs. glm(y~x1+x2, family="binomial")
glm(y~x1+x2, family="binomial")
vs. glm(y~x1+x2+x3, family="binomial")
Jadi secara berurutan membandingkan model yang lebih kecil dengan model yang lebih kompleks berikutnya dengan menambahkan satu variabel di setiap langkah. Masing-masing perbandingan dilakukan melalui uji rasio kemungkinan (uji LR; lihat contoh di bawah). Setahu saya, hipotesis ini jarang menarik, tetapi ini harus diputuskan oleh Anda.
Berikut adalah contoh di 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
# The sequential analysis
anova(my.mod, test="Chisq")
Terms added sequentially (first to last)
Df Deviance Resid. Df Resid. Dev Pr(>Chi)
NULL 399 499.98
gre 1 13.9204 398 486.06 0.0001907 ***
gpa 1 5.7122 397 480.34 0.0168478 *
rank 3 21.8265 394 458.52 7.088e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# We can make the comparisons by hand (adding a variable in each step)
# model only the intercept
mod1 <- glm(admit ~ 1, data = mydata, family = "binomial")
# model with intercept + gre
mod2 <- glm(admit ~ gre, data = mydata, family = "binomial")
# model with intercept + gre + gpa
mod3 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial")
# model containing all variables (full model)
mod4 <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
anova(mod1, mod2, test="LRT")
Model 1: admit ~ 1
Model 2: admit ~ gre
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 399 499.98
2 398 486.06 1 13.92 0.0001907 ***
anova(mod2, mod3, test="LRT")
Model 1: admit ~ gre
Model 2: admit ~ gre + gpa
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 398 486.06
2 397 480.34 1 5.7122 0.01685 *
anova(mod3, mod4, test="LRT")
Model 1: admit ~ gre + gpa
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 397 480.34
2 394 458.52 3 21.826 7.088e-05 ***
psummary(my.mod)
- Untuk koefisien
x1
: glm(y~x2+x3, family="binomial")
vs
glm(y~x1+x2+x3, family="binomial")
- Untuk koefisien
x2
: glm(y~x1+x3, family="binomial")
vsglm(y~x1+x2+x3, family="binomial")
- Untuk koefisien
x3
: glm(y~x1+x2, family="binomial")
vsglm(y~x1+x2+x3, family="binomial")
Jadi masing-masing koefisien terhadap model lengkap berisi semua koefisien. Tes Wald adalah perkiraan dari tes rasio kemungkinan. Kami juga bisa melakukan tes rasio kemungkinan (LR test). Begini caranya:
mod1.2 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial")
mod2.2 <- glm(admit ~ gre + rank, data = mydata, family = "binomial")
mod3.2 <- glm(admit ~ gpa + rank, data = mydata, family = "binomial")
anova(mod1.2, my.mod, test="LRT") # joint LR test for rank
Model 1: admit ~ gre + gpa
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 397 480.34
2 394 458.52 3 21.826 7.088e-05 ***
anova(mod2.2, my.mod, test="LRT") # LR test for gpa
Model 1: admit ~ gre + rank
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 395 464.53
2 394 458.52 1 6.0143 0.01419 *
anova(mod3.2, my.mod, test="LRT") # LR test for gre
Model 1: admit ~ gpa + rank
Model 2: admit ~ gre + gpa + rank
Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1 395 462.88
2 394 458.52 1 4.3578 0.03684 *
psummary(my.mod)
rank
anova(my.mod, test="Chisq")
rank
anova(mod1.2, my.mod, test="Chisq")
p7.088⋅10−5rank