From: Andres Legarra <alegarra_at_neiker.net>

Date: Mon 12 Sep 2005 - 19:09:49 EST

Date: Mon 12 Sep 2005 - 19:09:49 EST

RE: [R] Backtransforming regression coefficient for scaled covariateYep it
is the the same.

Scaling does both dividing and centering (this is the reason intercept
changes) and scaling is not with sd but with sum of squares divided by n-1;
so, it is not s.d. because average is not substracted
But the appropriate parameters are returned by scale()in form of attributes

(quite awful to extract)

x=1:100

a=rnorm(100)*200+x+.5*x^2+100

lm1=lm(formula= a ~ x + I(x^2))

Coefficients:

(Intercept) x I(x^2)

96.463 -1.062 0.528

lm2=lm(formula= a ~ scale(x,center=F) + scale(I(x^2),center=F) ) lm2$coeff

(Intercept) scale(x, center = F) scale(I(x^2), center = F)

96.46283 -62.079232403.00364

lm2$coeff[2]/attributes(scale(x,center=F))$"scaled:scale" scale(x, center = F)

-1.061893

lm2$coeff[3]/attributes(scale(x^2,center=F))$"scaled:scale" scale(I(x^2), center = F)

0.5280315

If you use the default center=T, then you also have to consider the means of x and x^2 which are involved in the intercept. I find this scale() a bit complicated. I never used it and perhaps I've read the doc too fast

Regards

Andres

-- Andres Legarra Albizu NEIKER Apdo. 46 Vitoria-Gasteiz 01080 Spain -- ----- Original Message ----- From: Gorjanc Gregor To: Andrés Legarra ; r-help@stat.math.ethz.ch Sent: Monday, September 12, 2005 10:12 AM Subject: RE: [R] Backtransforming regression coefficient for scaled covariate 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:Received on Mon Sep 12 19:14:38 2005

(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

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