Skip to main content

Generate non-normal distributions with known mean, variance, skewness and kurtosis

Project description

non-normal

Generate a non-normal distributions with given a mean, variance, skewness and kurtosis using the Fleishman Method, essentially a cubic transformation on a standard normal [X~N(0, 1)]

$$ Y =a +bX +cX^2 +dX^3 $$

where the coefficients ($a, b, c, d$) are tuned to create a distribution with the desired statistic

Non-Normal Distribution Figure 1. A non-normal field generated in the usage section below. The title shows the input parameters, and the emperically measured statistics of the generated distribution

Installation

Installs cleanly with a single invocation of the standard Python package tool:

$ pip install non-normal

Usage

from non_normal import fleishman

# Input parameters for non-normal field
mean = 0
var = 1
skew = 1
ekurt = 2
size = 2**20

# Create an instance of the Fleishman class
ff = fleishman.Fleishman(mean=mean, var=var, skew=skew, ekurt=ekurt, size=size)

# Generate the field
ff.gen_field()
non_normal_data = ff.field

# Measure the stats of the generated samples
ff.field_stats

>>> {'mean':    0.000203128504124, 
     'var':     1.001352686678266, 
     'skew':    1.005612915524984, 
     'ekurt':   2.052527629375554,}

References

  1. A method for simulating non-normal distributions
  2. Functions for Simulating Data by Using Fleishman’s Transformation
  3. Generation of Non-normal Data – A Study of Fleishman’s Power Method
  4. Computing the real solutions of Fleishman's equations for simulating non-normal data
  5. Simulating multivariate nonnormal distributions
  6. https://gist.github.com/zeimusu/7432603b85dc6406c6ea

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

non-normal-0.1.2.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

non_normal-0.1.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file non-normal-0.1.2.tar.gz.

File metadata

  • Download URL: non-normal-0.1.2.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.3 Darwin/22.4.0

File hashes

Hashes for non-normal-0.1.2.tar.gz
Algorithm Hash digest
SHA256 388a40bfb58a57a0bf9dbb244963e8f655dc22f089d92e75e8dd57cd9d643ec8
MD5 7d7788ad442826ce9bd02eb254486008
BLAKE2b-256 275a1145221143314077c7b1b24f90ec3e31d02654844891ad9b86e920485b8a

See more details on using hashes here.

File details

Details for the file non_normal-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: non_normal-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.3 Darwin/22.4.0

File hashes

Hashes for non_normal-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 30820a766d3e24cbf19b73337e77aa79d7f997dfb581c3a1930465a2f8598dfb
MD5 f828ca617876f5ec13337fbb9d052cbe
BLAKE2b-256 cea73a583059688a12a5f011238c2cb8fa8400498559681c7a13d37ae91a5eec

See more details on using hashes here.

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