Skip to main content

Two-Piece Distributions Implementation

Project description

twopiece: Two Piece Distributions

Overview

The twopiece library provides a Python implementation of the family of Two Piece distributions.

The family of univariate two–piece distributions is a family of univariate three-parameter location-scale models, where skewness is introduced by differing scale parameters either side of the location. For details on this family of distributions we refer to Inference in Two-Piece Location-Scale Models with Jeffreys Priors published in Bayesian Anal. Volume 9, Number 1 (2014), 1-22 and the references therein.

Supported Distributions

Implementation is provided for the following distributions

Three Parameters

  • two-piece normal [+ info]
  • two-piece Laplace
  • two-piece Cauchy
  • two-piece logistic

Four Parameters

  • two-piece t
  • two-piece exponential power

Main Features

We provide the following functionality:

  • probability density function pdf
  • cumulative distribution function cdf
  • quantile function ppf
  • random generation random_sample

for all the supported distributions.

Quick Start

To illustrate usage of the features for the 3 and 4 parameters distributions we will use the two-piece normal, and two-piece t, respectively. The behaviour is analogous for the rest of the supported distributions.

1. Create a twopiece instance

To create an instance we need to specify either 3 or 4 parameters:

For the two-piece normal we require:

  • loc: which is the location parameter
  • sigma1, sigma2 : which are both scale parameters
loc=0.0
sigma1=1.0
sigma2=1.0
dist = tpnorm(loc=loc, sigma1=sigma1, sigma2=sigma2)

For the two-piece t we require:

  • loc: which is the location parameter
  • sigma1, sigma2 : which are both scale parameters
  • shape : which defines the degrees of freedom for the t-Student distribution
loc=0.0
sigma1=1.0
sigma2=1.0
shape=3.0
dist = tpstudent(loc=loc, sigma1=sigma1, sigma2=sigma2, shape=shape)

Hereafter we assume that there is a twopiece instance called dist.

2. Evaluate and visualise the probability density function (pdf)

We can evaluate the pdf on a single point or an array type object

dist.pdf(0)
dist.pdf([0.0,0.25,0.5])

To visualise the pdf use

x = arange(-12, 12, 0.1)
y = dist.pdf(x)
plt.plot(x, y)

3. Evaluate the cumulative distribution function (cdf)

We can evaluate the cdf on a single point or an array type object

dist.cdf(0)
dist.cdf([0.0,0.25,0.5])

To visualise the cdf use

x = arange(-12, 12, 0.1)
y = dist.cdf(x)
plt.plot(x, y)

4. Evaluate the quantile function (ppf)

We can evaluate the ppf on a single point or an array type object. Note that the ppf has support on [0,1].

dist.ppf(0.95)
dist.ppf([0.5, 0.9, 0.95])

To visualise the ppf use

x = arange(0.001, 0.999, 0.01)
y = dist.ppf(x)
plt.plot(x, y)

5. Generate a random sample

To generate a random sample we require:

  • size: which is simply the size of the sample
sample = dist.random_sample(size = 100)

Install

Requirements

twopiece has been developed and tested on Python 3.6, and 3.7

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

twopiece-1.0.0.tar.gz (2.7 kB view hashes)

Uploaded Source

Built Distribution

twopiece-1.0.0-py3-none-any.whl (3.3 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