From: <henric.nilsson_at_statisticon.se>

Date: Tue 21 Jun 2005 - 17:13:22 GMT

R-devel@r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Wed Jun 22 03:14:38 2005

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
*