How to convert log-normal output back to original scale?

Below is my model specified through brms with a log-normal likelihood:

m <- brm(bf(y     ~ 1+(0+groupA | id) + (0+groupB | id), 
            sigma ~    0+group), 
            data=mydata, family=lognormal, chains = 4, iter=1000)

The output of summary(m) is shown below:

Family: lognormal 
  Links: mu = identity; sigma = log 
Formula: y ~ 1 + (0 + condition | id) 
         sigma ~ 0 + condition
...
Group-Level Effects: 
~id (Number of levels: 6917) 
           Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
sd(groupA)     0.08      0.00     0.08     0.08 1.01      560      999
sd(groupB)     0.11      0.00     0.11     0.11 1.00      655     1075

Population-Level Effects: 
                    Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
Intercept               3.19      0.00     3.19     3.19 1.00     1982     1679
sigma_groupA           -2.19      0.01    -2.21    -2.16 1.00      730     1324
sigma_groupB           -2.54      0.02    -2.58    -2.50 1.00      647     1492

To understand the output above, I want to convert the values back to the original scale. For the population-level intercept below, I think I should exponentiate the result:

Population-Level Effects: 
                    Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
Intercept               3.19      0.00     3.19     3.19 1.00     1982     1679

However, I’m not sure about the following two population-level standard errors:

Population-Level Effects: 
                    Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
sigma_groupA           -2.19      0.01    -2.21    -2.16 1.00      730     1324
sigma_groupB           -2.54      0.02    -2.58    -2.50 1.00      647     1492

Should I double-exponentiate them like below?

exp(exp(-2.19))=1.12
exp(exp(-2.54))=1.08

Similarly, I’m not sure how to convert two group-level standard errors either:

Group-Level Effects: 
~id (Number of levels: 6917) 
           Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
sd(groupA)     0.08      0.00     0.08     0.08 1.01      560      999
sd(groupB)     0.11      0.00     0.11     0.11 1.00      655     1075

I seldom use lognormal myself, but according to your output:

 Links: mu = identity; sigma = log

It seems you only need to exponentiate the sigma estimates.

Generally, you can’t simply transform the individual parameters any more when using any kind of nonlinear link. The parameters are only meaningful in the context of the rest of the model.
You could use conditional effects or contrasts to learn about the information on the outcome scale.

The lognormal has a log-link as part of the likelihood instead of the link. The mu parameter of the logitnormal likelihood is the median on the log scale so you would still have to exponentiate it but that’d only work for a pure intercept model.

1 Like

Thanks @scholz! After diving a little bit into the Stan code, now I can make sense of those parameter estimates.