计算 Gamma GLM 模型的工作残差
Calculating working residuals of a Gamma GLM model
我正在尝试计算 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 - fitted.value)/fitted.value 来计算工作残差,该公式适用于泊松 glm。但是,它不适用于 Gamma,因为这些值与我使用函数 resid():
生成的值不同
(mtcars$mpg - (-pred^(-1)))/-pred^(-1))
resid(model, type="working")
有人知道如何估计这些工作残差然后计算部分残差吗?
工作残差只是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
我正在尝试计算 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 - fitted.value)/fitted.value 来计算工作残差,该公式适用于泊松 glm。但是,它不适用于 Gamma,因为这些值与我使用函数 resid():
生成的值不同(mtcars$mpg - (-pred^(-1)))/-pred^(-1))
resid(model, type="working")
有人知道如何估计这些工作残差然后计算部分残差吗?
工作残差只是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