To make the coefficients of regression coefficients comparable, one usually rescales by the standard deviation (see case 3 below). This means that the different regression coefficients can be compared in terms of their effect size (e.g. when the coefficient for x1 is 2 and that of x2 is 4, the effect of x2 is twice as large as that of x1). This is not possible when x2 and x1 are otherwise measured on different scales, e.g. one having values ranging from 1 to 10 and the other from 1 to 20.


But when I rescale the coefficient by two times the standard deviation (see case 2), I am not entirely sure how to interpret the coefficients. Does this mean that the unit of the new coefficient in case 2 is two times the standard deviation? This would mean that moving one unit in the explanatory variable x_resc_two_times_sd corresponds to a two times standard deviation, e.g. in case 2, this would be 5.6292. Or do I have to multiply this effect by four because the standard deviation is 0.5?

## setting up artificial regression data
# number of points to sample
n_points <- 1000
# x-values
x <- runif(n_points, min = 0, max = 5)
# y-values with some random noise
y <- 2*x+6 + rnorm(n_points, mean = 6, sd = 2)
# quickly look at this
plot(x, y)

## Case 1: not rescaled
summary(lm(y ~ x))

## Case 2: rescaled by two times the sd
two_sd_func <- function(x){(x)/(2*sd(x, na.rm = T))} # function to rescale by 2*sd
x_resc_two_times_sd <- two_sd_func(x) 
summary(lm(y ~ x_resc_two_times_sd))

## Case 3: rescaled by one times the sd
one_sd_func <- function(x){(x)/(sd(x, na.rm = T))} # function to rescale by sd
x_resc_one_times_sd <- one_sd_func(x)
summary(lm(y ~ x_resc_one_times_sd))


Case 1:

            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 12.14274    0.12856   94.45   <2e-16 ***
x            1.93071    0.04319   44.70   <2e-16 ***

Case 2:

                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          12.1427     0.1286   94.45   <2e-16 ***
x_resc_two_times_sd   5.6292     0.1259   44.70   <2e-16 ***

Case 3:

                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)         12.14274    0.12856   94.45   <2e-16 ***
x_resc_one_times_sd  2.81461    0.06297   44.70   <2e-16 ***
  • 1
    $\begingroup$ The answer should be easy to see from the numbers you posted 2 * 2.81 = 5.63. $\endgroup$
    – Tim
    Jan 26 at 8:56
  • $\begingroup$ Yes, I know, it is quite an easy question. But I cannot make a mistake and am unsure. So, this means that if I would like to obtain the effect of a change in two standard deviations in case 2, I would have to multiply the effect by four as the standard deviation is 0.5? $\endgroup$
    – S Front
    Jan 26 at 9:04
  • $\begingroup$ You have $a \times b$ then you create $b' = b/c$ so for $a \times b = a' \times b'$ to hold what do you need to do with $a$ to get $a'$ ? $\endgroup$
    – Tim
    Jan 26 at 10:11
  • $\begingroup$ a' should be a/c. this means that rescaling by two times the sd provides a regression estimate representing the effect of a change in two sd in the explanatory variables. So in the example above, 5.6292 represents the effect of a two sd change in the explanatory variable on the dependent variable, right? $\endgroup$
    – S Front
    Jan 26 at 16:16


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.