# Find number of parameters in a distribution

**URL:** <https://discourse.julialang.org/t/find-number-of-parameters-in-a-distribution/47961>\
**Category:** Statistics\
**Tags:** mle\
**Created:** [October 8, 2020, 2:27am UTC](https://discourse.julialang.org/t/find-number-of-parameters-in-a-distribution/47961 "2020-10-08T02:27:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Albert\_Zevelev](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albert_zevelev/32/11844_2.png) [@Albert\_Zevelev](https://discourse.julialang.org/u/Albert_Zevelev)\
**Post date:** [October 8, 2020, 2:27am UTC](https://discourse.julialang.org/t/find-number-of-parameters-in-a-distribution/47961/1 "2020-10-08T02:27:21Z")

</div>

Suppose I’m looping over a large vector of distributions from [Distributions](https://github.com/JuliaStats/Distributions.jl).jl.

How can I automatically find how many parameters there are in a distribution?  
I want a function `nparams(d)` where:  
`nparams(Normal)=2` since Normal(μ,σ)  
`nparams(BetaBinomial)=3` since BetaBinomial(n,α,β)

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [October 8, 2020, 2:31am UTC](https://discourse.julialang.org/t/find-number-of-parameters-in-a-distribution/47961/2 "2020-10-08T02:31:22Z")

</div>

`nparams(d) = length(fieldnames(typeof(d)))`  
maybe

---

<div class="post-metadata">

**Author:** ![Albert\_Zevelev](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albert_zevelev/32/11844_2.png) [@Albert\_Zevelev](https://discourse.julialang.org/u/Albert_Zevelev)\
**Post date:** [October 8, 2020, 2:40am UTC](https://discourse.julialang.org/t/find-number-of-parameters-in-a-distribution/47961/3 "2020-10-08T02:40:03Z")

</div>

Thank you @jling!

```julia
length(fieldnames(Exponential)) #1 correct
length(fieldnames(typeof(Exponential))) #2 incorrect

nparams(d) = length(fieldnames(d)) #SOLUTION

```

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [October 8, 2020, 2:43am UTC](https://discourse.julialang.org/t/find-number-of-parameters-in-a-distribution/47961/4 "2020-10-08T02:43:11Z")

</div>

sorry, thought your `d` is an instance of a distribution.
