我想知道R在拟合泊松GLM时如何找到标准化残差或rstandard
。我已经找到了this,但它并没有谈论标准化残差。所以这是一个简单的代码:
counts <- c(18,17,15,20,10,20,25,13,12)
x=rpois(9,1)
E=counts*10+rpois(9,2)
glm.D93 <- glm(counts ~ x+offset(log(E)), family=poisson)
现在我需要知道R如何计算:
> rstandard(glm.D93)
1 2 3 4 5 6
0.018364902 -0.009725560 0.011933387 -0.026455659 -0.036635623 -0.002118836
7 8 9
0.036552236 -0.022033897 0.034771135
我在rstandard
上使用了帮助,发现实际上有两种rstandard
。一个基于“偏差”(默认),另一个基于“皮尔逊”残差。通过以下功能可以很容易地获得这两个功能:
> resid(glm.D93,type="dev")
> resid(glm.D93,type="pear")
我猜想要找到rstandard
,我应该将两个残差除以第i个残差的标准偏差。谢谢。
答案 0 :(得分:2)
很容易看到代码清楚显示您推断的功能。由于rstandard显然是通用的(大多数stats包函数是S3,你只需将类添加到“stem”函数名称:
> rstandard.glm
function (model, infl = influence(model, do.coef = FALSE),
type = c("deviance", "pearson"), ...)
{
type <- match.arg(type)
res <- switch(type, pearson = infl$pear.res, infl$dev.res)
res <- res/sqrt(summary(model)$dispersion * (1 - infl$hat))
res[is.infinite(res)] <- NaN
res
}