首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gamma GLM模型工作残差的计算

Gamma GLM模型工作残差的计算
EN

Stack Overflow用户
提问于 2018-11-29 22:34:57
回答 1查看 479关注 0票数 1

我试图计算伽玛GLM模型的工作残差。我是手动的,因为我想一步一步地计算部分残差。我的模型及其系数和预测如下:

代码语言:javascript
复制
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()生成的值不同:

代码语言:javascript
复制
(mtcars$mpg - (-pred^(-1)))/-pred^(-1))
resid(model, type="working")

有人知道如何估计这样的工作残差,然后计算部分残差吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-29 22:44:30

工作残差只是model$residuals。请参阅?glm

代码语言:javascript
复制
## 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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53548601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档