[R] why does lm() not allow for negative weights?
Duncan Murdoch
murdoch at stats.uwo.ca
Fri Aug 4 19:35:51 CEST 2006
On 8/4/2006 1:26 PM, Jens Hainmueller wrote:
> Dear List,
>
> Why do commonly used estimator functions (such as lm(), glm(), etc.) not
> allow negative case weights?
Residual sums of squares (or deviances) could be negative with negative
case weights. This doesn't seem like a good thing: would you really
want the fit to be far from those points?
> I suspect that there is a good reason for this.
> Yet, I can see reasonable cases when one wants to use negative case weights.
>
> Take lm() for example:
>
> ###
>
> n <- 20
> Y <- rnorm(n)
> X <- cbind(rep(1,n),runif(n),rnorm(n))
> Weights <- rnorm(n)
> # Includes Pos and Neg Weights
> Weights
>
> # Now do Weighted LS and get beta coeffs:
> b <- solve(t(X)%*%diag(Weights)%*%X) %*% t(X) %*% diag(Weights)%*%Y
That formula does not necessarily give least squares estimates in the
case where weights might be negative. For example, with a single
observation y, a single parameter mu, design matrix X = 1, and weight
-1, that formula becomes
b <- y,
but that is the worst possible estimator in a least squares sense. The
residual sum of squares can be made arbitrarily large and negative by
setting b to a large value.
Duncan Murdoch
> b
>
> # This seems like a valid model, but when I try
> lm(Y ~ X[,2:3],weights=Weights)
>
> # I get: "missing or negative weights not allowed"
>
> ###
>
> What is the rationale for not allowing negative weights? I ask this, because
> I am currently trying to implement a (two stage) estimator into R that
> involves negative case weights. Weights are generated in the first stage, so
> it would be nice if I could use canned functions such as
> lm(,weights=Weights) in the second stage.
>
> Thank you for your help.
>
> Best,
> Jens
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list