# How to model Zero Inflated Distribution

**URL:** <https://discourse.julialang.org/t/how-to-model-zero-inflated-distribution/92325>\
**Category:** Probabilistic Programming\
**Tags:** question\
**Created:** [December 30, 2022, 6:53pm UTC](https://discourse.julialang.org/t/how-to-model-zero-inflated-distribution/92325 "2022-12-30T18:53:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Guilherme\_Namen\_Pime](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/guilherme_namen_pime/32/45500_2.png) [@Guilherme\_Namen\_Pime](https://discourse.julialang.org/u/Guilherme_Namen_Pime)\
**Post date:** [December 30, 2022, 6:53pm UTC](https://discourse.julialang.org/t/how-to-model-zero-inflated-distribution/92325/1 "2022-12-30T18:53:26Z")

</div>

Hi. How to programing a Zero Inflated Distribution using Turing?

---

<div class="post-metadata">

**Author:** ![sethaxen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sethaxen/32/35604_2.png) [@sethaxen](https://discourse.julialang.org/u/sethaxen)\
**Post date:** [January 3, 2023, 12:05pm UTC](https://discourse.julialang.org/t/how-to-model-zero-inflated-distribution/92325/2 "2023-01-03T12:05:08Z")

</div>

Without implementing a custom distribution, this is currently only possible for discrete distributions. e.g.

```julia
julia> using Distributions, StatsPlots

julia> ZeroInflated(dist, pzero) = MixtureModel([Dirac(0), dist], [pzero, 1 - pzero]);

julia> d = ZeroInflated(Poisson(10), 0.1)
MixtureModel{Distribution{Univariate, Discrete}}(K = 2)
components[1] (prior = 0.1000): Dirac{Int64}(value=0)
components[2] (prior = 0.9000): Poisson{Float64}(λ=10.0)

julia> plot(d; components=false, legend=false)

```

![probability mass function of a zero-inflated Poisson distribution](https://global.discourse-cdn.com/julialang/original/3X/e/0/e09e114a2a2fd0420c9c463622becdeaa822dd7f.png)

The reason this currently doesn’t work for continuous distributions is that `MixtureModel` only supports mixtures of discrete or mixtures of continuous distributions, but not mixtures of both discrete and continuous.

To give concrete suggestions for the continuous case, I would need to know how you are planning to use this zero-inflated distribution in your model.

---

<div class="post-metadata">

**Author:** ![Guilherme\_Namen\_Pime](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/guilherme_namen_pime/32/45500_2.png) [@Guilherme\_Namen\_Pime](https://discourse.julialang.org/u/Guilherme_Namen_Pime)\
**Post date:** [January 3, 2023, 12:38pm UTC](https://discourse.julialang.org/t/how-to-model-zero-inflated-distribution/92325/3 "2023-01-03T12:38:21Z")

</div>

Thanks!
