【问题标题】:Null deviance changing from mgcv::gam with family=nb从 mgcv::gam 与 family=nb 变化的空偏差
【发布时间】: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 不等。

在这种情况下,空偏差只发生了轻微的变化,但在我的另一个例子中,它变化很大。

我错过了什么?

谢谢, 哈利

【问题讨论】:

    标签: r mgcv


    【解决方案1】:

    对于诸如“nb”之类的“扩展族”,mgcv 使用零偏差的近似值,这很容易计算,即使对于诸如有序分类之类的族也是如此,但取决于响应的位置参数的平均值根据模型。近似值是空模型的位置参数将是拟合模型下观测特定位置参数的平均值。

    在下一个版本 (1.8-23) 中,这将被直接最小化偏差 wrt 单个位置参数所取代,以找到零偏差。

    Simon Wood(mgcv 维护者)

    【讨论】:

      猜你喜欢
      • 2020-03-21
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多