如何使用R Package将Tweedie GLM中的色散参数设置为1 (phi=1)



我想将Tweedie GlM适合于响应变量,但对于我数据中的所有记录,分散参数(phi)设置为1。因此,除了phi之外,所有参数都使用极大似然估计器进行估计。

谢谢。

您可以通过在glmmTMB中使用map参数来实现。

示例设置:

library(glmmTMB)
library(tweedie)
nobs <- 2000; mu <- 4; phi <- 2; p <- 1.7
set.seed(101)
y <- rtweedie(nobs, mu=mu, phi=phi, power=p)

拟合无约束模型:

twm <- glmmTMB(y ~ 1, family=tweedie(), data = NULL)
sigma(twm)  ## 2.0188, close to the true value of 2

(sigma())是色散参数的通用存取方法;其定义因家族而异,参见?sigma.glmmTMB)

约束:

twm2 <- update(twm,
map = list(betad=factor(NA)),
start = list(betad = 0))
sigma(twm2) ## 1

解释:

  • map指定了一组参数被固定在它们的起始值上(如果NA),或者一组参数被约束为彼此相等(即共享一个因子水平):参见glmmTMB。在这种情况下,色散参数是一个单一的值(它的长度可以是>如果指定了dispformula,则为1),因此我们将其设置为包含NA的长度为1的因子。
  • start指定起始值(map用于固定参数的值)。分散参数在对数尺度上拟合,所以我们将起始值设置为0 (exp(0) = 1)。在这种情况下,我们实际上不需要指定值,因为默认值是0,但这样更清楚。

最新更新