 # Overview

I have an outcome variable that is a percentage with some 0% and 100% included. My main goal is to test the difference between two groups on this percentage. I am using brms and zero_one_inflated_beta().

# brms code

fit <- brm(
formula = bf(
pct ~ 1 + group + (1 | participant) + (1 | target),
phi ~ 1 + group + (1 | participant) + (1 | target),
zoi ~ 1 + group + (1 | participant) + (1 | target),
coi ~ 1 + group + (1 | participant) + (1 | target)
),
family = zero_one_inflated_beta(),
...
)


# Results

Here are my results (simplified to just median and pd for your readability):

Parameter     Median      pd
(Intercept)   -1.19     100%
phi_Intercept  1.74     100%
zoi_Intercept -3.44     100%
coi_Intercept -7.60     100%
group1	       0.38	  99.36%
phi_group1	  -0.39	  99.74%
zoi_group1     0.54   76.92%
coi_group1     3.72   99.05%


# Density Definitions  # Interpretation

Here is my interpretation. I’d greatly appreciate a confirmation that this is right or a correction.

(Intercept) = \mu, the beta distribution’s mean parameter (in logit units), for group0

phi_Intercept = \phi, the beta distribution’s precision parameter (in log units), for group0

zoi_Intercept = \alpha, the probability that an observation is either a zero or a one (in logit units), for group0

coi_Intercept = \gamma, the probability that an observation is a one given that it is either a zero or a one (in logit units), for group0

group1 = the difference between group1 and group0 in \mu (in logit units), the beta distribution’s mean parameter

phi_group1 = the difference between group1 and group0 in \phi (in log units), the beta distribution’s precision parameter

zoi_group1 = the difference between group1 and group0 in \alpha, the probability that an observation is either a zero or a one (in logit units)

coi_group1 = the difference between group1 and group0 in \gamma, the probability that an observation is a one given that it is either a zero or a one (in logit units)

# Questions

Can I (and how do I) test the following hypotheses?

1. The groups differ on the overall probability of a one occurring

2. The groups differ on the overall probability of a zero occurring

3. The groups differ on the overall mean score, inclusive of the zero, one, and beta components

I assume that I will use hypothesis() and do some parameter algebra, perhaps converting back from logit units to probabilities?

1 Like

I think I figured it out based on the density definitions and the posterior_epred_zero_one_inflated_beta() function below:

Probability of 1 = \alpha\gamma
Probability of 0 = \alpha(1 - \gamma)
Total Score = \alpha\gamma + (1-\alpha)\mu

hypothesis(
fit,
c(
"mu group0" = "plogis(Intercept) = 0",
"mu group1" = "plogis(Intercept + group1) = 0",
"mu group1 - mu group0" = "plogis(Intercept + group1) > plogis(Intercept)",
"p0 group0" = "plogis(zoi_Intercept)*(1 - plogis(coi_Intercept)) = 0",
"p0 group1" = "plogis(zoi_Intercept + zoi_group1)*(1 - plogis(coi_Intercept + coi_group1)) = 0",
"p0 group1 - p0 group0" = "plogis(zoi_Intercept + zoi_group1)*(1 - plogis(coi_Intercept + coi_group1)) > plogis(zoi_Intercept)*(1 - plogis(coi_Intercept))",
"p1 group0" = "plogis(zoi_Intercept)*(plogis(coi_Intercept)) = 0",
"p1 group1" = "plogis(zoi_Intercept + zoi_group1)*(plogis(coi_Intercept + coi_group1)) = 0",
"p1 group1 - p1 group0" = "plogis(zoi_Intercept + zoi_group1)*(plogis(coi_Intercept + coi_group1)) > plogis(zoi_Intercept)*(plogis(coi_Intercept))",
"total group0" = "plogis(zoi_Intercept)*plogis(coi_Intercept) + plogis(Intercept)*(1 - plogis(zoi_Intercept)) = 0",
"total group1" = "plogis(zoi_Intercept + zoi_group1)*plogis(coi_Intercept + coi_group1) + plogis(Intercept + group1)*(1 - plogis(zoi_Intercept + zoi_group1)) = 0",
"total group1 - total group0" = "plogis(zoi_Intercept + zoi_group1)*plogis(coi_Intercept + coi_group1) + plogis(Intercept + group1)*(1 - plogis(zoi_Intercept + zoi_group1)) > plogis(zoi_Intercept)*plogis(coi_Intercept) + plogis(Intercept)*(1 - plogis(zoi_Intercept))"
)
)

1 Like