Skip to main content

Computes non-parametric distributions by optimizing a constrained smoothing function

Project description

Smoother is a statistical tool for computing non-parametric distributions by optimizing a constrained smoothing function.

Why smoother?

We often want to estimate a distribution given limited information, such as its mean and standard deviation. Rather than impose parametric assumptions, smoother uses non-parametric techniques to infer an entire distribution given limited information.

Installation

$ pip install smoother

Quickstart

from smoother import Smoother, MomentConstraint

import matplotlib.pyplot as plt
import numpy as np

# fit a smooth distribution with given mean and standard deviation
lower_bound, upper_bound = -3, 3
mean_const = MomentConstraint(0, degree=1)
std_const = MomentConstraint(1, degree=2, type_='central', norm=True)
smoother = Smoother().fit(lower_bound, upper_bound, [mean_const, std_const])

# plot smoother pdf
x = np.linspace(lower_bound, upper_bound, num=100)
f_x = np.array([smoother.pdf(x_i) for x_i in x])
plt.plot(x, f_x)

The result should look like a normal distribution.

Citation

@software{bowen2020smoother,
  author = {Dillon Bowen},
  title = {Smoother: a statistical package for computing smooth, non-parametric distributions},
  url = {https://dsbowen.github.io/smoother/},
  date = {2020-08-06},
}

License

Users must cite this package in any publications which use it.

It is licensed with the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smoother-0.0.5.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

smoother-0.0.5-py3-none-any.whl (7.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page