henric.nilsson@statisticon.se
2005-Jun-21 17:13 UTC
[Rd] weighted.residuals for glm objects (PR#7961)
Full_Name: Henric Nilsson Version: 2.2.0 (2005-06-20 r34776) OS: Windows 2000 Submission from: (NULL) (213.115.23.26) The help page for `weighted.residuals' states that the function can be used with both `lm' and `glm' objects. However, it's unclear what's meant by the following passage "Weighted residuals are the usual residuals Ri, multiplied by wi^0.5, where wi are the weights as specified in lm's call." when it comes to a GLM. What's "...usual residuals..." in this context? After reading the code it's clear that the function multiplies the deviance residuals by wi^0.5, but this doesn't seem sensible for a GLM. Consider e.g.> set.seed(1) > x <- runif(10) > y <- x + rnorm(10) > w <- 0:9 > weighted.residuals(lm(y ~ x, weights = w))2 3 4 5 6 7 8 0.3845201 1.0361636 1.2689516 -0.9817686 3.7205310 1.3823979 -1.5458433 9 10 -6.2029822 2.6149474> weighted.residuals(glm(y ~ x, weights = w))2 3 4 5 6 7 0.3845201 1.4653567 2.1978886 -1.9635372 8.3193602 3.3861695 8 9 10 -4.0899170 -17.5446831 7.8448423 I suggest that the code for `weighted.residuals' is changed to weighted.residuals <- function (obj, drop0 = TRUE) { w <- weights(obj) r <- residuals(obj, type = "deviance") if (is.null(w)) r else if (drop0) r[w != 0] else r } which seems to do the "right thing" for both `lm' and `glm' objects.