Zero-One Inflated Beta Model and Syntax brms

Dear All,

My apologies for the naive question. I have proportion data (lesion coverage per area) that is nested within regions and categorized by lesion type I planned to analyze with a beta model. However, given that I have 0s in the data I figured I would need to use zero-inflated beta. I then realized I had a couple of 1s in the data as well (7/655 observations). Therefore, would this mean I need to use a zero-one inflated beta model or would another option be preferable since the data set only has a small number of 1s? Could I transform the 1s so that I can use just a zero-inflated model?

If I went the zero-one inflated beta route, I am a bit confused on the syntax in that I am not sure of what sub models are required? Any help would be much appreciated.

1 Like

If you don’t care about the sub-models, and just want to handle the 0s/1s with the Beta distribution, you might like my ordered beta version which you can also estimate with brms:

  1. Vignette: GitHub & BitBucket HTML Preview

  2. Paper:


I recommend checking out these brms specific resources: here and here.

Good luck!

1 Like

Do you suspect that your 0’s and 1’s arise from a different data-generating process than the beta-distributed data, or are they in effect rounding errors arising from a beta distribution?

1 Like

Thanks! Do you know if this will be integrated into brms as a family argument?

Hmmm I’m not sure. The 0s represent cases with no lesions and the 1s represent cases where the whole area is lesioned while the numbers in between represent varying degrees of lesioned area.

This sounds like a fundamentally different data generating process, if indeed there are cases where literally zero area is lesioned and cases where literally all the area is lesioned.

If you’d like to estimate a zero/one hurdle beta model, then the route you take should depend on whether you want to model the covariate relationships of the zero-inflation, one-inflation, and beta distribution as correlated or not.

It’s on the list but of course depends on brms release schedule. At present though it works fine with most brms functions if you use the provided code.