# Interpreting interactions in beta regression

Edit I am using a log link and log(statemb) because my specific goal is to be able to conclude for small changes, an 1% increase in statemb leads to a beta_i increase in stateur. Therefore the primary coefficient interpretations I am interested in are those involving the main effect of statemb and its interactions with control variables.

I am attempting to interpret the coefficients from a beta regression. Below is a sample beta regression with log link function using R:

stateur: state unemployment rate (numeric)

statemb: state maximum benefit level (numeric)

age: age in years (numeric)

sex: factor with levels (male,female) (categorical)

married: if individual is married (categorical)

library(tidyverse)
library(betareg)
library(Ecdat)
data("Benefits", package = "Ecdat")

Benefits=Benefits %>% mutate(stateur=stateur/100)
Call:
betareg(formula = (stateur) ~ (age) + sex + married + (log(statemb) * age) + (log(statemb) * sex) +
(log(statemb) * married) + (log(statemb) * sex * married), data = Benefits, link = "log")

Coefficients (mean model with log link):
Estimate Std. Error z value Pr(>|z|)
(Intercept)                     -5.622243   0.397495 -14.144  < 2e-16 ***
age                              0.008963   0.008606   1.041    0.298
sexmale                         -0.020894   0.314155  -0.067    0.947
marriedyes                       0.133234   0.363398   0.367    0.714
log(statemb)                    -0.302992   0.077355  -3.917 8.97e-05 ***
age:log(statemb)                -0.001927   0.001673  -1.152    0.249
sexmale:log(statemb)             0.009721   0.061074   0.159    0.874
marriedyes:log(statemb)         -0.025369   0.070789  -0.358    0.720
sexmale:marriedyes              -0.384411   0.422497  -0.910    0.363
sexmale:marriedyes:log(statemb)  0.075248   0.082167   0.916    0.360

Phi coefficients (precision model with identity link):
Estimate Std. Error z value Pr(>|z|)
(phi)  13473.7      275.2   48.95   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Type of estimator: ML (maximum likelihood)
Log-likelihood: 3.398e+04 on 11 Df
Pseudo R-squared: 0.07049
Number of iterations: 105 (BFGS) + 15 (Fisher scoring)


Interpretation:

I believe these main effects interpretations are correct

age- unit increase in age leads to (exp(.008963)-1)*100 percent change in mean unemployment rate

sexmale- the mean unemployment rate is exp(-.02) times lower versus females

married- mean unemployment rate is exp(0.13323) higher for married individuals

log(statemb) - 1% change in statemb leads to -0.302992 change in mean unemployment rate

Given the above are correct how would the interactions be interpreted, below is my understanding

age:log(statemb) - Best to plot and summarise relationship

sexmale:log(statemb) - a 1% increase in statemb leads to a 0.009721 percent increase in the mean unemployment rate relative to females

marriedyes:log(statemb)- a 1% increase in statemb leads to a -0.025369 percent increase in the mean unemployment rate relative to unmarried individuals

sexmale:marriedyes - married males versus unmarried females?

sexmale:marriedyes:log(statemb) - a 1% increase in statemb leads to a 0.075248 percent increase in the mean unemployment rate for married males relative to unmarried females

Are the interpretations of the interaction coefficients correct?

Welcome to this forum, @statq! I'll give you some suggestions you can use to make model interpretation easier.

Typically, beta regression is used with a logit link, so I will assume the same in my answer. (You are currently using a log link.)

With a logit link in place, it sounds like your beta regression model is of the following form:

logit(mean UR) = beta_0+
beta_1 x age +
beta_2 x sexmale +
beta_3 x marriedyes +
beta_4 x log(statemb) +
beta_5 x age x log(statemb) +
beta_6 x sexmale x log(statemb) +
beta_7 x marriedyes x log(statemb) +
beta_8 x sexmale x marriedyes +
beta_9 x sexmale x marriedyes x log(statemb)


where unemployment rate (UR) is expresses as a proportion.

Now, let's say you want to interpret the effect of sex on the logit-transformed mean unemployment rate, adjusted for the effects of the other predictor variables in your model. To this end, you can re-arrange your model so that all terms involving the dummy variable sexmale (which is used to encode the effect of sex) are grouped together:

logit(mean UR) = beta_0 +
beta_1 x age +
[beta_2 + beta_6 x log(statemb) + beta_8 x marriedyes + beta_9 x marriedyes x log(statemb)] x sexmale +
beta_3 x marriedyes +
beta_4 x log(statemb) +
beta_5 x age x log(statemb) +
beta_7 x marriedyes x log(statemb)


This model re-arrangement makes it easier to see that the effect of sex in the model depends on both log(statemb) and marriedyes. To tease out what the effect looks like, you could consider breaking it down into manageable pieces. How you break it down will depend on what the distribution of log(statemb) looks like.

Let's say the distribution of log(statemb) is unimodal and (approximately) symmetric . Then you can consider its obseverd mean value (M) as well as M - SD and M + SD as 3 values for which you want to express the effect of sex. (Here, SD is the observed standard deviation of the distribution of log(statemb).) Considering that marriedyes takes two possible values (i.e., 1 for married and 0 for unmarried), this will give you 6 possible scenarios for which you can express the effect of sex at particular values of age:

1. Effect of sex when log(statemb) is equal to M and marriedyes = 1;

2. Effect of sex when log(statemb) is equal to M and marriedyes = 0;

3. Effect of sex when log(statemb) is equal to M - SD and marriedyes = 1;

4. Effect of sex when log(statemb) is equal to M - SD and marriedyes = 0;

5. Effect of sex when log(statemb) is equal to M + SD and marriedyes = 1;

6. Effect of sex when log(statemb) is equal to M + SD and marriedyes = 0.

For the first of these scenarios, the estimated effect of sex on the logit-transformed mean UR is therefore:

  b_2 + b_6 x M + b_8  + b_9  x M


where the b's are the estimated values of the unknown coefficients beta's. Among people having an average value for log(statemb) and the same age, the mean UR of males differs from the mean UR of females by a multiplicative factor of exp(b_2 + b_6 x M + b_8 + b_9 x M).

If you know how to set up and tests linear contrasts of model coefficients in a beta regression model (on the logit scale), you can easily derive a confidence interval to go with the point estimate b_2 + b_6 x M + b_8 + b_9 x M.

Note that effect plots are also a great way to visualize the effects I described above.

• Thanks for the great answer! Could you review my edits and include any information that would change in your answer given my added information? Commented Feb 14, 2021 at 21:38