[R] Question on WLS (gls vs lm)
Gabor Grothendieck
ggrothendieck at gmail.com
Thu Jun 24 21:04:47 CEST 2010
On Thu, Jun 24, 2010 at 9:20 AM, Viechtbauer Wolfgang (STAT)
<Wolfgang.Viechtbauer at stat.unimaas.nl> wrote:
> The weights in 'aa' are the inverse standard deviations. But you want to use the inverse variances as the weights:
>
> aa <- (attributes(summary(f1)$modelStruct$varStruct)$weights)^2
>
> And then the results are essentially identical.
>
We might now ask how we might have found Wolfgang's answer via
calculation. Lets redo the gls calculation of variance from scratch
by iterated re-weighted least squares (just one iteration here) and
compare that to the gls aa calculated by the original poster:
# estimate beta
fm <- lm(Petal.Width ~ Species / Petal.Length, iris)
# estimate variance
v <- fitted(lm(resid(fm)^2 ~ Species, iris))
v <- v/v[1]
# compare to aa from original poster
lm(log(aa) ~ log(v))
The last line gives:
(Intercept) log(v)
-4.212e-07 -5.000e-01
which suggsts: aa = 1/sqrt(variance)
More information about the R-help
mailing list