Как установить параметр дисперсии равным единице (phi=1) в Tweedie GLM с помощью пакета R

#r #glm #tweedie

Вопрос:

Я хочу подогнать твидовый GlM к переменной отклика, но с параметром дисперсии (phi), равным 1 для всех записей в моих данных. Таким образом, все параметры оцениваются с использованием оценки максимального правдоподобия, за исключением phi.

Спасибо.

Комментарии:

1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Вы можете сделать это, используя map аргумент в glmmTMB .

Пример настройки:

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

Подходит для неограниченной модели:

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

( sigma() является общим методом доступа для параметра дисперсии; его определение варьируется в зависимости от семейства, см. ?sigma.glmmTMB )

Ограниченный:

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

Объяснение:

  • map задает наборы параметров, которые должны быть зафиксированы на их начальных значениях (если NA ), или наборы параметров, которые должны быть ограничены, чтобы быть равными друг другу (т. е. Иметь общий уровень факторов): см. glmmTMB . В этом случае параметр дисперсии представляет собой одно значение (оно могло бы иметь длину gt; 1, если dispformula бы было указаноgt;), поэтому мы делаем его коэффициентом длины 1, содержащим NA .
  • start задает начальные значения (которые являются значениями, map используемыми для фиксированных параметров). Параметр дисперсии устанавливается в логарифмической шкале, поэтому мы устанавливаем начальное значение равным 0 (exp(0) = 1). В этом случае нам действительно не нужно указывать значение, так как по умолчанию все равно 0, но так будет понятнее.

Комментарии:

1. Большое спасибо, Бен, за ваш ответ, он так полезен.