# Custom Probability distribution

**URL:** <https://discourse.mc-stan.org/t/custom-probability-distribution/27050>\
**Category:** Modeling\
**Created:** [April 6, 2022, 1:16pm UTC](https://discourse.mc-stan.org/t/custom-probability-distribution/27050 "2022-04-06T13:16:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Abayomi\_Ajayi](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.mc-stan.org/abayomi_ajayi/32/13350_2.png) [@Abayomi\_Ajayi](https://discourse.mc-stan.org/u/Abayomi_Ajayi)\
**Post date:** [April 6, 2022, 1:16pm UTC](https://discourse.mc-stan.org/t/custom-probability-distribution/27050/1 "2022-04-06T13:16:18Z")

</div>

How do i use custom probability distribution as a prior distribution in modelling

---

<div class="post-metadata">

**Author:** ![valmapra](https://avatars.discourse-cdn.com/v4/letter/v/4da419/32.png) [@valmapra](https://discourse.mc-stan.org/u/valmapra)\
**Post date:** [April 6, 2022, 2:41pm UTC](https://discourse.mc-stan.org/t/custom-probability-distribution/27050/2 "2022-04-06T14:41:20Z")

</div>

This depends on the language you want to use for coding your custom distribution.  
For Stan language, see the [manual](https://mc-stan.org/docs/2_29/reference-manual/function-bodies.html) on defining probability functions.  
For C++, see [this post](https://cran.r-project.org/web/packages/rstan/vignettes/external.html) on interfacing with external functions.

---

<div class="post-metadata">

**Author:** ![Abayomi\_Ajayi](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.mc-stan.org/abayomi_ajayi/32/13350_2.png) [@Abayomi\_Ajayi](https://discourse.mc-stan.org/u/Abayomi_Ajayi)\
**Post date:** [April 6, 2022, 6:26pm UTC](https://discourse.mc-stan.org/t/custom-probability-distribution/27050/3 "2022-04-06T18:26:01Z")

</div>

Had used the Stan language to to define the custom probability distribution, but I want to use the user defined distribution as a prior distribution in a random effect modeling

---

<div class="post-metadata">

**Author:** ![Bob\_Carpenter](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.mc-stan.org/bob_carpenter/32/9230_2.png) [@Bob\_Carpenter](https://discourse.mc-stan.org/u/Bob_Carpenter)\
**Post date:** [April 6, 2022, 10:13pm UTC](https://discourse.mc-stan.org/t/custom-probability-distribution/27050/4 "2022-04-06T22:13:19Z")

</div>

If you used Stan to define the density, you can use it as a prior. For example,

```stan
functions {
  real foo_lpdf(real x, real lam) { return normal_lpdf(x | 0, lam); }
}
parameters {
  real alpha;
}
model {
  alpha ~ foo(3); // custom prior
  ...
}

```
