【发布时间】:2017-10-09 12:25:35
【问题描述】:
我正在使用 mgcv::gam 拟合负二项式模型,并且我注意到零偏差从拟合变为拟合。如果我使用negbin 家族函数而不是nb,问题就会消失。
下面重现了这个问题。
library(mgcv)
set.seed(3)
n <- 400
dat <- gamSim(1, n=n)
g <- exp(dat$f / 5)
## negative binomial data...
dat$y <- rnbinom(g, size=3, mu=g)
## known theta fit ...
# Now fit 3 different models
preds <- c("x1", "x2", "x3")
for (i in 1:length(preds)){
fo <- formula(paste("y ~ x0 +", preds[i]))
#print(fo)
m1 <- gam(fo, data=dat, family=nb(theta=3)) # nb
m2 <- gam(fo, data=dat, family=negbin(3)) # negbin
print(paste(m1$null.deviance, ", ", m2$null.deviance))
}
如果我运行它,我会得到以下结果。
[1] "820.724580736807 , 820.708788014928"
[1] "820.747020281717 , 820.708788014928"
[1] "820.708788454065 , 820.708788014928"
使用 nb 的 null.deviance 从 820.71 到 820.75 不等。
在这种情况下,空偏差只发生了轻微的变化,但在我的另一个例子中,它变化很大。
我错过了什么?
谢谢, 哈利
【问题讨论】: