2010-03-28 43 views
7

您能告訴我什麼是由返回glm $殘差殘差(glm)其中glm是quasipoisson對象。例如我將如何使用glm $ y和glm $ linear.predictors來創建它們。

GLM $殘差

n missing unique Mean  .05  .10 .25 .50  .75  .90  .95 

37715 10042 2174 -0.2574 -2.7538 -2.2661 -1.4480 -0.4381 0.7542 1.9845 2.7749

最低:-4.243 -3.552 -3.509 -3.481 -3.464 最高:8.195 8.319 8.592 9.089 9.416

渣油(GLM)

n missing  unique  Mean  .05  .10  .25 
37715   0  2048 -2.727e-10 -1.0000 -1.0000 -0.6276 
    .50  .75  .90  .95 

-0.2080 0.4106 1.1766 1.7333

最低:-1.0000 -0.8415 -0.8350 -0.8333 -0.8288 最高:7.2491 7.6110 7.6486 7.9574 10.1932

回答

16

調用渣油(模型)將默認爲偏差殘差,而模型$渣油會給你工作殘差。由於鏈接功能,模型殘差沒有單一的定義。有偏差,工作,部分,皮爾森和迴應殘差。因爲這些只依賴於平均結構(而不​​是方差),所以quasipoisson和poisson的殘差具有相同的形式。你可以看看residuals.glm功能的細節,但這裏是一個例子:

counts <- c(18,17,15,20,10,20,25,13,12) 
outcome <- gl(3,1,9) 
treatment <- gl(3,3) 
glm.D93 <- glm(counts ~ outcome + treatment, family=quasipoisson()) 
glm.D93$resid 


#working 
resid(glm.D93,type="working") 
(counts - glm.D93$fitted.values)/exp(glm.D93$linear) 

#deviance 
resid(glm.D93,type="dev") 
fit <- exp(glm.D93$linear) 
poisson.dev <- function (y, mu) 
    sqrt(2 * (y * log(ifelse(y == 0, 1, y/mu)) - (y - mu))) 
poisson.dev(counts,fit) * ifelse(counts > fit,1,-1) 

#response 
resid(glm.D93,type="resp") 
counts - fit 

#pearson 
resid(glm.D93,type="pear") 
(counts - fit)/sqrt(fit) 
+1

這太好了。現在我只需要了解每種殘差何時對迴歸診斷最有用。下面Adam提出的圖書推薦(Hardin和Hilbe的「廣義線性模型和擴展」)似乎很有幫助,還有其他建議嗎? – 2010-03-28 21:31:30

4

我不知道有足夠的瞭解泊松和準泊松分佈來回答你的問題在深度要求(即一個精確的方程,將變量轉換成殘差使用模型),但如果任何混淆是由於什麼樣的殘留類型正在使用,爲什麼這兩個命令給出了不同的答案,這可能有助於:

渣油()在R中默認爲「偏差」類型。但是,glm()將不同的殘差分配給$ residuals向量。

如果您使用的是準泊松族,glm()會分配工作類型的殘差,而resid()會將偏差類型作爲默認值。

要嘗試了這一點,你可以使用:

渣油(GLM,TYPE = 「工作」)

GLM $殘差

,這應該給你相同的答案(至少,它在一個樣本數據集我做SED)。

根據R,工作殘差:「在IWLS的最後一次迭代的殘差符合」

如果你看看這本書:「廣義線性模型和擴展」(由哈丁和Hilbe)上的Google圖書,您可以訪問第4.5節,其中解釋了各種類型的殘差。

+0

哈丁和希爾貝的書很好的參考!謝謝! – 2014-01-31 10:14:44