The skew student t distribution
Project description
Skew student $t$ distribution
Skewt-Scipy
is a Python package for skew student $t$ distribution.
Skew student $t$ distribution
We employ the definition of the skew-t distribution from Azzalini (2014, Section 4.3.1). Firstly, we need two density functions: $ t $ distribution and skew-normal distribution respectively. The $ t $ distribution is defined as: [ f_{t}(x|\nu) = \frac{\Gamma(\frac{\nu+1}{2})}{\sqrt{\nu\pi}\Gamma(\frac{\nu}{2})}\left(1+\frac{x^{2}}{\nu}\right)^{-\frac{\nu+1}{2}}, \quad x\in \mathbb{R},\quad \nu>0, ] where $ \nu $ denotes the degree of freedom. The skew-normal distribution is defined as: [ f_{sn}(x|\xi,\omega,\alpha) = \frac{2}{\omega}\phi\left(\frac{x-\xi}{\omega}\right)\Phi\left(\alpha \left( \frac{x-\xi}{\omega} \right)\right), \quad x\in \mathbb{R},\quad \omega>0,\quad \alpha\in \mathbb{R}, ] where $ \xi, \omega $ are the location and scale parameters respectively. $ \alpha $ is the skewness parameter. $ \phi(\cdot) $ and $ \Phi(\cdot) $ are the standard normal density function and cumulative distribution function respectively.
The skew-t variable can be defined as: [ Z= \frac{Z_{0}}{\sqrt{V}}, ] where $Z_{0}\sim f_{sn}(x|0,1,\alpha)$ and $ V\sim \chi^{2}{\nu}/\nu $ are independent. Then, the density function of $ Z $ is [ f{st}(\alpha,\nu)= 2f_{t}(x|\nu)F_{t}\left(\alpha x\sqrt{\frac{\nu+1}{\nu+x^{2}}}\Big|\nu+1\right), ] where $F_{t}(\cdot|\nu+1)$ represent the $ t $ cumulative density function with degree of freedom $ \nu+1 $. As $ \alpha\in \mathbb{R} $ and $ \nu>0 $, then skew-t distribution can degenerate several special distributions.
Installation
Install via pip with
python3 -m pip install skewt_scipy
Usage
As the class skewt
inherits from the class rv_continuous
of Scipy
, many methods are available. The shape parameters a
and df
represent $\alpha$ and $\nu$ (the degree of freedom).
Method | Description |
---|---|
rvs(a, df, loc=0, scale=1, size=1, random_state=None) |
Random variates. |
pdf(x, a, df, loc=0, scale=1) |
Probability density function. |
logpdf(x, a, df, loc=0, scale=1) |
Log of the probability density function. |
cdf(x, a, df, loc=0, scale=1) |
Cumulative distribution function. |
logcdf(x, a, df, loc=0, scale=1) |
Log of the cumulative distribution function. |
ppf(q, a, df, loc=0, scale=1) |
Percent point function (inverse of cdf ). |
stats(a, df, loc=0, scale=1, moments='mvsk') |
Mean('m'), variance('v'), skew('s'), and/or kurtosis('k'). |
fit(data) |
Parameter estimates for generic data. |
Note that the parameters $\alpha =\pm \infty $ and $\nu=+\infty$ are valid for the above methods.
Examples
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
Built Distribution
Hashes for skewt_scipy-0.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 583e8a6bfc10ec4af0db20560464cb5b8aa15a816c9b5bed091d3898e760f7a7 |
|
MD5 | 70aa2205946c9ce964f9923d4e4b87a5 |
|
BLAKE2b-256 | 6594a6041c58aaedc3d79525ee095dfcd46e3ab62a0fb9ea98dbb0301b702018 |