[R] DIfference between weights options in lm GLm and gls.

Spencer Graves spencer.graves at pdf.com
Thu Mar 23 19:36:59 CET 2006


Hi, Sundar:

	  Thanks, Sundar.  That should have been obvious to me.  However, I
hadn't used varFixed before, and evidently I thought about it for only 1
ms instead of the required 2.  With that change, I get the same answers
for all three.

	  Best Wishes,
	  spencer

Sundar Dorai-Raj wrote:

> Hi, Spencer,
> 
> For your call to gls you actually want:
> 
> fit.gls.w <- gls(y~x, data=DF, weights=varFixed(~1/w))
> 
> HTH,
> 
> --sundar
> 
> Spencer Graves wrote:
> 
>>	  In my tests, "gls" did NOT give the same answers as "lm" and "glm",
>>and I don't know why;  perhaps someone else will enlighten us both.  I
>>got the same answers from "lm" and "glm".  Since you report different
>>results, please supply a replicatable example.
>>
>>	  I tried the following:
>>set.seed(1)
>>DF <- data.frame(x=1:8, xf=rep(c("a", "b"), 4),
>>        y=rnorm(8), w=1:8, one=rep(1,8))
>>fit.lm.w <- lm(y~x, DF, weights=w)
>>fit.glm.w <- glm(y~x, data=DF, weights=w)
>>fit.gls.w <- gls(y~x, data=DF,
>>                weights=varFixed(~w))
>>
>>
>>
>>>coef(fit.lm.w)
>>
>>(Intercept)           x
>> -0.2667521   0.0944190
>>
>>
>>>coef(fit.glm.w)
>>
>>(Intercept)           x
>> -0.2667521   0.0944190
>>
>>
>>>coef(fit.gls.w)
>>
>>(Intercept)           x
>> -0.5924727   0.1608727
>>
>>	  I also tried several variants of this.  I know this does not answer
>>your questions, but I hope it will contribute to an answer.
>>	
>>	  spencer graves
>>
>>Goeland wrote:
>>
>>
>>
>>>Dear r-users£¬
>>>
>>>Can anyone explain exactly the difference between Weights options in lm glm
>>>and gls?
>>>
>>>I try the following codes, but the results are different.
>>>
>>>
>>>
>>>
>>>
>>>>lm1
>>>
>>>
>>>Call:
>>>lm(formula = y ~ x)
>>>
>>>Coefficients:
>>>(Intercept)            x
>>>    0.1183       7.3075
>>>
>>>
>>>
>>>
>>>>lm2
>>>
>>>
>>>Call:
>>>lm(formula = y ~ x, weights = W)
>>>
>>>Coefficients:
>>>(Intercept)            x
>>>   0.04193      7.30660
>>>
>>>
>>>
>>>
>>>>lm3
>>>
>>>
>>>Call:
>>>lm(formula = ys ~ Xs - 1)
>>>
>>>Coefficients:
>>>    Xs      Xsx
>>>0.04193  7.30660
>>>
>>>Here ys= y*sqrt(W), Xs<- sqrt(W)*cbind(1,x)
>>>
>>>So we can see weights here for lm means the scale for X and y.
>>>
>>>But for glm and gls I try
>>>
>>>
>>>
>>>
>>>>glm1
>>>
>>>
>>>Call:  glm(formula = y ~ x)
>>>
>>>Coefficients:
>>>(Intercept)            x
>>>    0.1183       7.3075
>>>
>>>Degrees of Freedom: 1242 Total (i.e. Null);  1241 Residual
>>>Null Deviance:      1049000
>>>Residual Deviance: 28210        AIC: 7414
>>>
>>>
>>>
>>>>glm2
>>>
>>>
>>>Call:  glm(formula = y ~ x, weights = W)
>>>
>>>Coefficients:
>>>(Intercept)            x
>>>    0.1955       7.3053
>>>
>>>Degrees of Freedom: 1242 Total (i.e. Null);  1241 Residual
>>>Null Deviance:      1548000
>>>Residual Deviance: 44800        AIC: 11670
>>>
>>>
>>>
>>>>glm3
>>>
>>>
>>>Call:  glm(formula = y ~ x, weights = 1/W)
>>>
>>>Coefficients:
>>>(Intercept)            x
>>>   0.03104      7.31033
>>>
>>>Degrees of Freedom: 1242 Total (i.e. Null);  1241 Residual
>>>Null Deviance:      798900
>>>Residual Deviance: 19900        AIC: 5285
>>>
>>>
>>>
>>>
>>>>glm4
>>>
>>>
>>>Call:  glm(formula = ys ~ Xs - 1)
>>>
>>>Coefficients:
>>>  Xs    Xsx
>>>2.687  6.528
>>>
>>>Degrees of Freedom: 1243 Total (i.e. Null);  1241 Residual
>>>Null Deviance:      4490000
>>>Residual Deviance: 506700       AIC: 11000
>>>
>>>With weights, the glm did not give the same results as lm why?
>>>
>>>Also for gls, I use varFixed here.
>>>
>>>
>>>
>>>
>>>>gls3
>>>
>>>Generalized least squares fit by REML
>>> Model: y ~ x
>>> Data: NULL
>>> Log-restricted-likelihood: -3737.392
>>>
>>>Coefficients:
>>>(Intercept)           x
>>>0.03104214  7.31032540
>>>
>>>Variance function:
>>>Structure: fixed weights
>>>Formula: ~W
>>>Degrees of freedom: 1243 total; 1241 residual
>>>Residual standard error: 4.004827
>>>
>>>
>>>
>>>>gls4
>>>
>>>Generalized least squares fit by REML
>>> Model: ys ~ Xs - 1 
>>> Data: NULL
>>> Log-restricted-likelihood: -5500.311
>>>
>>>Coefficients:
>>>     Xs      Xsx
>>>2.687205 6.527893
>>>
>>>Degrees of freedom: 1243 total; 1241 residual
>>>Residual standard error: 20.20705
>>>
>>>We can see the relation between glm and gls with weight as what
>>>
>>>I think,  but what's the difference between lm wit gls and glm? why?
>>>
>>>Thanks so much.!
>>>
>>>Goeland
>>>
>>>	
>>>
>>>Goeland
>>>goeland at gmail.com
>>>2006-03-16
>>>
>>>
>>>
>>>------------------------------------------------------------------------
>>>
>>>______________________________________________
>>>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
>>
>>
>>
>>------------------------------------------------------------------------
>>
>>______________________________________________
>>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




More information about the R-help mailing list