[Rd] weighted.residuals for glm objects (PR#7961)

From: <henric.nilsson_at_statisticon.se>
Date: Tue 21 Jun 2005 - 17:13:22 GMT


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.



R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Wed Jun 22 03:14:38 2005

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:09 GMT