Ini dapat membantu Anda membaca jawaban saya di sini: Mengapa nilai-p saya berbeda antara output regresi logistik, uji chi-square, dan interval kepercayaan untuk OR? Pertanyaan Anda di sini hampir merupakan duplikat dari itu, tetapi ada beberapa elemen tambahan dalam pertanyaan Anda yang dapat diatasi.
Seperti yang dicatat oleh @CliffAB, nilai-p dalam summary.glm()
output berasal dari tes Wald. Ini analog dengant-menguji koefisien untuk model linier dalam hal mereka adalah perbedaan antara nilai yang pas dari koefisien dan nilai referensi (dianggap sebagai 0), dibagi dengan kesalahan standar. Perbedaannya adalah bahwa ini diambil untuk didistribusikan sebagai standar normal, bukant. Di sisi lain, ini berlaku untuk sampel besar dan kami belum tentu tahu apa yang dimaksud dengan 'sampel besar' dalam kasus apa pun.
Menggunakan anova.glm()
memberi Anda akses ke berbagai tes. Ketika Anda mengatur test="Rao"
, itu memberi Anda nilai p dari tes skor. Dan ketika Anda mengatur salah satu test="Chisq"
atau test="LRT"
(mereka sama), itu memberi Anda nilai p dari tes rasio kemungkinan.
The anova.glm()
Fungsi tidak menguji hipotesis nol sama dengan uji Wald di summary()
keluaran dalam kasus ini . Itu hanya karena model Anda hanya memiliki satu variabel. The anova.glm()
fungsi akan melakukan tes berurutan, yang analog dengan 'tipe I SS' dalam pengaturan linear, sedangkan tes Wald dari summary()
analog ke 'ketik III SS' dalam pengaturan linear (lihat jawaban saya di sini: Bagaimana menafsirkan tipe I, tipe II, dan tipe III ANOVA dan MANOVA? ). Mempertimbangkan:
x2 = rnorm(n)
m2 = glm(y~x+x2, family="binomial")
summary(m2)$coefficients
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) -0.05906436 0.186876339 -0.3160612 7.519561e-01
# x -0.01567551 0.003537183 -4.4316372 9.352029e-06
# x2 -0.05967796 0.099093504 -0.6022388 5.470152e-01
anova(m2, test="LRT")
# Terms added sequentially (first to last)
#
# Df Deviance Resid. Df Resid. Dev Pr(>Chi)
# NULL 499 619.10
# x 1 20.3841 498 598.72 6.335e-06 ***
# x2 1 0.3627 497 598.35 0.547
m3 = glm(y~x2+x, family="binomial") # I just switched the order of x & x2 here
summary(m3)$coefficients
# Estimate Std. Error z value Pr(>|z|)
# (Intercept) -0.05906436 0.186876339 -0.3160612 7.519561e-01
# x2 -0.05967796 0.099093504 -0.6022388 5.470152e-01 # these are the same
# x -0.01567551 0.003537183 -4.4316372 9.352029e-06 # as above
anova(m3, test="LRT")
# Terms added sequentially (first to last)
#
# Df Deviance Resid. Df Resid. Dev Pr(>Chi)
# NULL 499 619.10
# x2 1 0.1585 498 618.94 0.6906 # these differ from the
# x 1 20.5883 497 598.35 5.694e-06 *** # anova output above
Anda dapat memilih anova.glm()
fungsi untuk memberi Anda skor dan kemungkinan rasio tes variabel individu dalam model regresi logistik ganda yang analog dengan 'tipe III SS', tetapi itu membosankan. Anda harus tetap memperbaiki model Anda sehingga setiap variabel pada gilirannya terdaftar terakhir dalam formula yang disediakan untuk glm()
panggilan. Nilai p terakhir yang tercantum dalam anova.glm()
output adalah yang akan dianalogikan dengan 'tipe III SS'.
Untuk mendapatkan tes rasio skor atau kemungkinan variabel individual lebih nyaman, gunakan drop1()
saja. Mempertimbangkan:
drop1(m3, test="LRT")
# Single term deletions
#
# Model:
# y ~ x2 + x
# Df Deviance AIC LRT Pr(>Chi)
# <none> 598.35 604.35
# x2 1 598.72 602.72 0.3627 0.547 # the same as when x2 is last above
# x 1 618.94 622.94 20.5883 5.694e-06 *** # the same as when x is last above