[R] Backtransforming regression coefficient for scaled covariate

Christoph Buser buser at stat.math.ethz.ch
Mon Sep 12 10:43:42 CEST 2005


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 at 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 at neiker.net]
 > Sent: Mon 2005-09-12 08:53
 > To: Gorjanc Gregor; r-help at 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 at 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 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
 > 
 > 
 > !DSPAM:43253a39268411607118103!




More information about the R-help mailing list