How to rescale coefficients of lognormal regression to be % change in y for unit increase of X

I have fit a lognormal regression model, after scaling and centering the independent variables only. I did this using the brms package in R using the family = lognormal() argument.

To be explicit, I did not scale and center the y variable prior to running the regression. Now, thanks to this excellent explanation, I understand to interpret the parameters for the model, I need to exponentiate them. If beta = 0.0582, then exp(0.0582) = 1.059, which means I would see a 5.9% change in the value of y for every 1 standard deviation increase in X. But how should I get the % change in y for every unit increase of X? Do I divide beta by the standard deviation of X (recorded when scaling and centering the variable) and then exponentiate the result, or exponiate beta and then divide that by the standard deviation of the variable? I.e. which of these is correct?

a) exp(beta) / (std)
b) exp( beta / std )

Also, is there anything I need to do with the intercept (alpha) other than exponentiate it?

I guess you are working on a model like this

\log(y_i) = \alpha + \beta \cdot X + e_i, \; e_i \sim \mbox{N}(0, \sigma^2)

And you are interested in the interpretation of \beta \cdot c for any constant c.
Since

\beta \cdot c = \mathbb{E}[\log(y) | X = x + c ] - \mathbb{E}[\log(y) | X = x]

we have

\exp(\beta \cdot c )= \exp(\mathbb{E}[\log(y) | X = x + c ] - \mathbb{E}[\log(y) | X = x]) \\ =\frac{\exp(\mathbb{E}[\log(y) | X = x + c ])}{ \exp( \mathbb{E}[\log(y) | X = x])} \;.

Therefore, \exp(\beta \cdot c) is the ratio of the geometric mean of y for X = x+c over the geometric mean of y for X = x. And \{\exp(\beta \cdot c) - 1\}\cdot 100 describes the percentage change in the geometric mean of y for every c increase of X. So I guess the correct answer is b)

2 Likes

Appreciate your reply Lu.Zhang! Iā€™m not quite sure about your application of the constant c, is this the standard deviation of the x in its original scale? It looks like you are multiplying it, but in my question, option b) divides the beta by the standard deviation of the variable. Which is correct?

Okay, if you scale your X into \tilde{X} such that X = std \cdot \tilde{X} and use \tilde{X} in the regression, then \beta \cdot \tilde{X} = \frac{\beta}{std}\cdot X, so my c is \frac{1}{std} in your example.

That makes total sense, thank you Lu.Zhang!