Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/seatonullberg/kernel-density-estimation

Kernel density estimation in Rust.
https://github.com/seatonullberg/kernel-density-estimation

kernel-density-estimation probability-density statistics

Last synced: about 1 month ago
JSON representation

Kernel density estimation in Rust.

Awesome Lists containing this project

README

        

# kernel-density-estimation
![Crates.io](https://img.shields.io/crates/d/kernel-density-estimation)
![Crates.io](https://img.shields.io/crates/l/kernel-density-estimation)
![Crates.io](https://img.shields.io/crates/v/kernel-density-estimation)

Kernel density estimation in Rust.

Kernel density estimation (KDE) is a non-parametric method to estimate the probability
density function of a random variable by taking the summation of kernel functions centered
on each data point. This crate serves three major purposes based on this idea:
1) Evaluate the probability density function of a random variable.
2) Evaluate the cumulative distribution function of a random variable.
3) Sample data points from the probability density function.

An excellent technical description of the method is available
[here](https://bookdown.org/egarpor/NP-UC3M/kde-i.html).

__Note:__ Currently only univariate distributions are supported but multivariate is a goal in the future!

## Examples

__[univariate](examples/univariate.rs)__ - This example showcases the core `pdf`, `cdf`, and `sample` functionalities for a univariate distribution.
```
cargo run --example univariate
```
![Univariate Distribution](assets/univariate.png)

__[kernel](examples/kernel.rs)__ - This example showcases each of the available kernel functions.
```
cargo run --example kernel
```
![Kernel Functions](assets/kernel.png)

## Roadmap

Refer to the [milestone issues](https://github.com/seatonullberg/kernel-density-estimation/issues) to see the direction the project is headed in future releases or [CHANGELOG.md](./CHANGELOG.md) to see the changes between each release.

## License

Distributed under the MIT License. See [LICENSE](./LICENSE) for more information.

## Acknowledgements

* Notes for Nonparametric Statistics[^citation] - An excellent technical description of nonparametric methods referenced heavily in the development of this project.

[^citation]: García-Portugués, E. (2022). Notes for Nonparametric Statistics.
Version 6.5.9. ISBN 978-84-09-29537-1.