1
$\begingroup$

I carried out a multiple linear regression analysis with three dependent variables. Two of them are measures as a logarithm, one of them is measured on a range from [0,1]. The dependent variable is also a logarithm. In order to make them comparable, I used the stdBeta command in Stata to obtain the standardized coefficients, i.e., the beta weights.

However, I am unsure how to interpret these values. For the normal regression output, I would use the following interpretation:

  • Log-Log: For a 1% increase in X, there is a x % increase in Y.
  • Lin-Log: For a 1-unit increase in X, there is a 100x % increase in Y. (at least for small values).

How does the interpretation for the standardized coefficients work? Is it the following?

  • Log-Log: For a 1% increase in the standard deviation in X, there is a x % increase in the standard deviation in Y.
  • Lin-Log: For a 1-standard-deviation increase in X, there is a 100x % increase in the standard deviation in Y?

I really appreciate your help!

$\endgroup$

1 Answer 1

2
$\begingroup$

What Beta Coefficients Are

Beta coefficients do not require any special interpretation, as they are standardized. To approximate the coefficient value, it estimates the change in standard deviation units in the average value of y per standard deviation increase in the predictor, bounded from -1 to +1. This is achieved with the formula for obtaining them, which is simply:

$$ \begin{aligned} \beta^*=\frac{s_x}{s_y}\beta \end{aligned} $$

where $s$ is the standard deviation and $\beta$ is the regression slope coefficient (see Vittinghoff et al., 2012, page 75). As such, their meaning is the same regardless of whatever transformation you apply to the regression, because the values are always rescaled to be unitless.

Practical Example in R

I demonstrate with an example below using R, first by manually transforming two regression beta coefficients, then by using the lm.beta function to compare how it is done automatically in R. First the simulated data, which has a curvilinear trend.

#### Simulate Data ####
library(lm.beta)
x=1:15
z=rnorm(n=15)
y=c(59, 50, 44, 38, 33, 28, 23, 20, 17, 15, 13, 12, 11, 10, 9.5)
plot(x,y)

enter image description here

I fit a model that includes the raw units of x and z by their raw values, then a second model with x logged.

#### Fit MLR ####
fit <- lm(
  y ~ x + z
)

#### Fit MLR with Log X ####
fit2 <- lm(
  y ~ log(x) + z
)

To obtain the beta coefficients manually, we just plug in the values from the formula for each by using the coef function on our regression fits, selecting the 2nd coefficient (the x slope or log(x) slope). Then we multiply the sd or standard deviation of x, then divide by the standard deviation of y. The only difference we make in this case is logging x for the second regression, as this was the value of x when entered into the regression.

#### Manually Obtain Betas ####
coef(fit)[2]*sd(x)/sd(y)
coef(fit2)[2]*sd(log(x))/sd(y)

You can see the output for each below:

> coef(fit)[2]*sd(x)/sd(y)
         x 
-0.9506303 
> coef(fit2)[2]*sd(log(x))/sd(y)
    log(x) 
-0.9917196 

The slightly higher log(x) beta makes sense, as now that it's been transformed to become more linear, its predictiveness of y is accordingly better than the raw x units. To check if this was calculated right, we can use the lm.beta function.

#### Obtain Betas ####
lm.beta(fit)
lm.beta(fit2)

And we will see that both x and log(x) match their manual calculations.

> lm.beta(fit)

Call:
lm(formula = y ~ x + z)

Standardized Coefficients::
 (Intercept)            x            z 
          NA -0.950630304  0.001188294 

> lm.beta(fit2)

Call:
lm(formula = y ~ log(x) + z)

Standardized Coefficients::
(Intercept)      log(x)           z 
         NA -0.99171958  0.01540832

You will find the same applies for a log-log regression. The definitions don't change, and neither does interpretation.

#### Fit MLR with Log Log ####
fit3 <- lm(
  log(y) ~ log(x) + z
)

#### Manually Calculate ####
coef(fit3)[2]*sd(log(x))/sd(log(y))

#### Check Again with LMBETA ####
lm.beta(fit3)

You will find the approximation is still similar.

Citation

Vittinghoff, E., Glidden, D. V., Shiboski, S. C., & McCulloch, C. E. (2012). Regression methods in biostatistics: Linear, logistic, survival, and repeated measures models (2nd ed.). Springer US. https://doi.org/10.1007/978-1-4614-1353-0

$\endgroup$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.