# \[ANN\] MultiKDE.jl: A Lazy Evaluation Multivariate Kernel Density Estimator

**URL:** <https://discourse.julialang.org/t/ann-multikde-jl-a-lazy-evaluation-multivariate-kernel-density-estimator/63786>\
**Category:** Package Announcements\
**Tags:** package, announcement, statistics\
**Created:** [June 29, 2021, 8:13pm UTC](https://discourse.julialang.org/t/ann-multikde-jl-a-lazy-evaluation-multivariate-kernel-density-estimator/63786 "2021-06-29T20:13:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![noil-reed](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/noil-reed/32/24125_2.png) [@noil-reed](https://discourse.julialang.org/u/noil-reed)\
**Post date:** [June 29, 2021, 8:13pm UTC](https://discourse.julialang.org/t/ann-multikde-jl-a-lazy-evaluation-multivariate-kernel-density-estimator/63786/1 "2021-06-29T20:13:36Z")

</div>

I realized currently there is no library for multivariate kernel density estimation (unless you extend some existing code). And I need it for one of my projects. So here it is: [MultiKDE.jl](https://github.com/noil-reed/MultiKDE.jl).

## Unique feature:

1. Multidimension: Using unnormalized generalization product kernel to estimate multi-dimensional kernel density (refers statsmodels).
2. Lazy evaluation: Doesn’t pre-initialize a KDE, only evaluate points when necessary.
3. Categorical distribution: This library supports categorical KDE using two specific kernel functions, both ordered-categorical (age, amount…) and unordered-categorical (sex, face of the coin…). When using unordered-categorical, non-numeric objects are also supported.

## Example:

### 2d KDE:

![2d KDE visualization](https://raw.githubusercontent.com/noil-reed/notebooks/842a60e81bad431dd70c6e04eb93f82ff10c1cda/MultiKDE_demo/dim2.svg)

---

<div class="post-metadata">

**Author:** ![noil-reed](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/noil-reed/32/24125_2.png) [@noil-reed](https://discourse.julialang.org/u/noil-reed)\
**Post date:** [June 29, 2021, 8:14pm UTC](https://discourse.julialang.org/t/ann-multikde-jl-a-lazy-evaluation-multivariate-kernel-density-estimator/63786/2 "2021-06-29T20:14:07Z")

</div>

Check out this [post](https://noil-reed.github.io/2021/MultiKDE.jl-a-lazy-evaluation-multivariate-kernel-density-estimator/) for more details and reasons for development.

---

<div class="post-metadata">

**Author:** ![EvoArt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/evoart/32/25357_2.png) [@EvoArt](https://discourse.julialang.org/u/EvoArt)\
**Post date:** [June 30, 2021, 7:48am UTC](https://discourse.julialang.org/t/ann-multikde-jl-a-lazy-evaluation-multivariate-kernel-density-estimator/63786/3 "2021-06-30T07:48:09Z")

</div>

Great! Thanks for creating this.
