簡體   English   中英

帶偏移的泊松 GLM 的偽 R²

[英]Pseudo R² for a Poisson GLM with offset

我的問題可能是技術性的:我試圖通過使用人口 (p) 作為抵消來控制暴露來模擬疾病計數 (d)。 在 R 中,我找到了兩種可能的方法:

m1 -> glm(d ~ 1 + offset(log(n)), family=poisson, data=dat)
m2 -> glm(d ~ 1, family=poisson, data=dat, offset=log(n))

m1 和 m2 的摘要顯示summary(m1) = summary(m2)但如果我嘗試通過pR2 (pscl 包)計算 McFadden: McFadden(m1)McFadden(m2)

有人對此有解釋嗎?

這是pscl:::pR2.glm的源代碼:

function (object, ...) 
{
    llh <- logLik(object)
    objectNull <- update(object, ~1)
    llhNull <- logLik(objectNull)
    n <- dim(object$model)[1]
    pR2Work(llh, llhNull, n)
}
<environment: namespace:pscl>

如果在公式中指定了偏移量,它會在第二行中丟失( update以計算僅截取模型)。

看這個例子:

library("foreign")
ceb <- read.dta("http://data.princeton.edu/wws509/datasets/ceb.dta")
ceb$y <- round(ceb$mean*ceb$n, 0)
ceb$os <- log(ceb$n)  

m0 <- glm(y ~ res + offset(os), data=ceb, family=poisson)
m1 <- glm(y ~ res, offset=os, data=ceb, family=poisson)

all.equal(coef(m0), coef(m1))
# [1] TRUE

### compute null models
coef(update(m0, ~1))  # wrong, offset not considered
# (Intercept) 
#        5.02 
coef(update(m1, ~1))
# (Intercept) 
#       1.376 
coef(update(m0, ~1, offset=os))
# (Intercept) 
#       1.376 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM