Re: [R] Backtransforming regression coefficient for scaled covariate

From: Gorjanc Gregor <Gregor.Gorjanc_at_bfro.uni-lj.si>
Date: Mon 12 Sep 2005 - 18:12:23 EST


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 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
Received on Mon Sep 12 18:24:48 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:40:09 EST