Re: [R] Backtransforming regression coefficient for scaled covariate

From: Christoph Buser <buser_at_stat.math.ethz.ch>
Date: Mon 12 Sep 2005 - 18:43:42 EST

Dear Gregor

The solution of Andres was correct, but by reproducing his example you did a copy paste error. In the model lm2 you should scale your variable after the polynomial transformation

I(scale(x^2)) and not I(scale(x)^2)

Then the backtransformation in your example should work.

Regards,

Christoph Buser



Christoph Buser <buser@stat.math.ethz.ch> Seminar fuer Statistik, LEO C13
ETH (Federal Inst. Technology)	8092 Zurich	 SWITZERLAND
phone: x-41-44-632-4673		fax: 632-1228

http://stat.ethz.ch/~buser/

Gorjanc Gregor writes:
> Andres, this seems not to be the case. Look bellow
> the coefficients. They are not the same as in unscaled
> regression.
>
> R> (lm1 <- lm(y ~ x + I(x^2)))
>
> Call:
> lm(formula = y ~ x + I(x^2))
>
> Coefficients:
> (Intercept) x I(x^2)

> 4.62069 1.78811 -0.00751
>
> R> ## Fit regression with transformed i.e. standardized covariate

Wrong line!!!!

> R> (lm2 <- lm(y ~ scale(x) + I(scale(x)^2)))

Correct one

> R> (lm2 <- lm(y ~ scale(x) + I(scale(x^2))))

>
> Call:
> lm(formula = y ~ scale(x) + I(scale(x)^2))
>
> Coefficients:
> (Intercept) scale(x) I(scale(x)^2)
> 75.12 29.86 -6.21
>
> R> coef(lm2)[3]/sd(x^2)
> I(scale(x)^2)
> -0.0020519
>
> R> coef(lm2)[2]/sd(x)
> scale(x)
> 1.0384
>
> -----Original Message-----
> From: Andres Legarra [mailto:alegarra@neiker.net]
> Sent: Mon 2005-09-12 08:53
> To: Gorjanc Gregor; r-help@stat.math.ethz.ch
> Subject: Re: [R] Backtransforming regression coefficient for scaled covariate
>
> [R] Backtransforming regression coefficient for scaled covariate
>
> Your
> covariate in the second part of the polynomial is x^2 and not x. Therefore
> the transformation should be applied to x^2.
> Like this:
> (lm2 <- lm(y ~ scale(x) + I(scale(x^2)) )
> then you would use
> coef(lm2)[3]/sd(x^2)
>
> Andres
> --
> Andres Legarra
> NEIKER
> Apdo. 46
> Vitoria-Gasteiz 01080 Spain
> --
>
>
>
> ----- Original Message -----
> From: Gorjanc Gregor
> To: r-help@stat.math.ethz.ch
> Sent: Sunday, September 11, 2005 10:25 PM
> Subject: [R] Backtransforming regression coefficient for scaled covariate
>
>
> Hello!
> Scaling i.e. (x - mean(x)) / sd(x) of covariates in the model
> can improve the efficiency of estimation. That is nice, but
> sometimes one needs to report estimates for original scale. I
> was able to backtransform estimates of linear regression quite
> easily but I stumped on higher polynomials. Is there a general
> rule that I am not aware of or is my algebra so bad?
> I appologize for not pure R question but I hope others will also
> benefit. I attached the R code for example bellow.
> ## --- Generate data for linear regression ---
> e <- rnorm(n = 100, sd = 10)
> x <- rnorm(n = 100, mean = 100, sd = 10)
> b <- 3
> mu <- 2
> y <- mu + b * x + e
> plot(y = y, x = x)
> ## Fit linear regression
> (lm1 <- lm(y ~ x))
> ## Fit linear regression with transformed i.e. standardized covariate
> (lm2 <- lm(y ~ scale(x)))
> ## Backtransform estimate of regression coefficient
> coef(lm2)[2] / sd(x)
> ## --- Generate data for quadratic regression ---
> e <- rnorm(n = 100, sd = 10)
> x <- runif(n = 100, min = 1, max = 100)
> b1 <- 2
> b2 <- -0.01
> mu <- 2
> y <- mu + b1 * x + b2 * x^2 + e
> plot(y = y, x = x)
> ## Fit regression
> (lm1 <- lm(y ~ x + I(x^2)))
> ## Fit regression with transformed i.e. standardized covariate
> (lm2 <- lm(y ~ scale(x) + I(scale(x)^2)))
> ## Backtransform estimates of regression coefficients
> ## ??
> Lep pozdrav / With regards,
> Gregor Gorjanc
> ----------------------------------------------------------------------
> University of Ljubljana
> Biotechnical Faculty URI: http://www.bfro.uni-lj.si/MR/ggorjan
> Zootechnical Department mail: gregor.gorjanc <at> bfro.uni-lj.si
> Groblje 3 tel: +386 (0)1 72 17 861
> SI-1230 Domzale fax: +386 (0)1 72 17 888
> Slovenia, Europe
> ----------------------------------------------------------------------
> "One must learn by doing the thing; for though you think you know it,
> you have no certainty until you try." Sophocles ~ 450 B.C.
> ______________________________________________
> R-help@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@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
>
>
> !DSPAM:43253a39268411607118103!



R-help@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 Received on Mon Sep 12 18:47:27 2005

This archive was generated by hypermail 2.1.8 : Sun 23 Oct 2005 - 16:50:44 EST