R

R 如何計算此二項式回歸的 p 值?

  • September 26, 2016

考慮以下二項式回歸:

# Create some data
set.seed(10)
n <- 500
x <- runif(n,0,100)
y <- x + rnorm(n,sd=100) < 0
 
# Fit a binomial regression model
model <- glm(y ~ x, family="binomial")

summary(model)

summary函數返回一個 p 值1.03e-05。使用 時anova.glm,無論使用什麼方法計算 p 值,都會得到稍微更極端的 p 值。

anova(model, test="Rao")   # p.value = 7.5e-6
anova(model, test="LRT")   # p.value = 6.3e-6
anova(model, test="Chisq") # p.value = 6.3e-6

函數的 p 值是否summary適用於與函數返回的假設相同的假設anova?如果是,如何summary計算這個 p 值,是否可以直接使用 執行相同的計算anova

它可以幫助您在這裡閱讀我的答案:為什麼我的 p 值在邏輯回歸輸出、卡方檢驗和 OR 的置信區間之間存在差異? 您在這裡的問題幾乎與此相同,但是您的問題中還有一些其他元素可以解決。

正如@CliffAB 所指出的,summary.glm()輸出中的 p 值來自 Wald 測試。這些類似於- 線性模型的係數測試,因為它們是係數的擬合值與參考值之間的差(取為),除以標準誤。不同之處在於這些被認為是作為標準正態分佈而不是. 另一方面,這些對大樣本有效,我們不一定知道在任何給定情況下什麼構成“大樣本”。

使用anova.glm()使您可以訪問不同的測試。當您設置test="Rao"時,它會為您提供分數測試的 p 值。當您設置test="Chisq"test="LRT"(它們相同)時,它會為您提供似然比檢驗的 p 值。

在這種情況下,該函數確實測試了與輸出中anova.glm()的 Wald 測試相同的零假設。那隻是因為您的模型只有一個變量。該函數將執行順序測試,類似於線性設置中的“I 型 SS”,而 Wald 測試類似於線性設置中的“III 型 SS”(請參閱我的答案:如何解釋 I 型, II 型和 III 型 ANOVA 和 MANOVA?)。考慮: summary()``anova.glm()``summary()

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

您可以anova.glm()在類似於“III 型 SS”的多元邏輯回歸模型中為您提供單個變量的得分和似然比檢驗,但這很乏味。您需要繼續調整模型,以便每個變量依次列在提供給glm()調用的公式中。輸出中列出的最後一個 p 值anova.glm()類似於“III 型 SS”。

要更方便地獲得單個變量的分數或似然比檢驗,請drop1()改用。考慮:

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

引用自:https://stats.stackexchange.com/questions/237073

comments powered by Disqus