Расчет рабочих остатков модели Gamma GLM - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь рассчитать рабочие остатки модели Gamma GLM.Я делаю это вручную, потому что я хочу вычислить частичные невязки шаг за шагом.Моя модель, ее коэффициенты и прогнозы описаны ниже:

library(datasets)
data(mtcars)

model <- glm(mpg ~ cyl + disp + hp, data=mtcars, family=Gamma)
coefs <- coef(model)
pred <- coefs[1] + coefs[2]*mtcars$cyl + coefs[3]*mtcars$disp + coefs[4]*mtcars$hp

Я попытался рассчитать рабочие остатки, применив формулу (value - fit.value) /fited.value, которая отлично работает для пуассоновского glm,Однако это не сработало для Gamma, так как значения отличаются от тех, которые я генерирую с помощью функции остаток ():

(mtcars$mpg - (-pred^(-1)))/-pred^(-1))
resid(model, type="working")

Кто-нибудь знает, как оценить такие рабочие остатки, чтобы затем рассчитать частичные остатки?

1 Ответ

0 голосов
/ 30 ноября 2018

Рабочие остатки просто model$residuals.См ?glm


## setup
library(datasets)
data(mtcars)
model <- glm(mpg ~ cyl + disp + hp, data = mtcars, family = Gamma)

## family info
oo <- Gamma(link = "inverse")

## compute linear predictor manually (assuming no model offset)
coefs <- coef(model)
eta <- coefs[1] + coefs[2] * mtcars$cyl + coefs[3] * mtcars$disp +
       coefs[4] * mtcars$hp

## compute working residuals
resi_working <- (mtcars$mpg - oo$linkinv(eta)) / oo$mu.eta(eta)

## validation
range(resi_working - model$residuals)
#[1] 0 0
...