mvem.stats.multivariate_genhyperbolic

mvem.stats.multivariate_genhyperbolic.fit

mvem.stats.multivariate_genhyperbolic.fit(x, lmbda=1, alpha_bar=1, symmetric=False, standardize=False, nit=2000, reltol=1e-08, abstol=1e-07, silent=False, flambda=None, falpha_bar=None, fmu=None, fsigma=None, fgamma=None, return_loglike=False)[source]

Estimate the parameters of the generalised hyperbolic distribution. We use the (lmbda, chi, psi, mu, sigma, gamma)-parameterisation.

Parameters
  • x (np.ndarray) – An array of shape (n, p) containing n observations of some p-variate data with n > p.

  • lmbda – The intial value of lmbda. Defaults to 1.

  • alpha_bar (float, optional) – The initial value of alpha_bar. Defaults to 1.

  • symmetric (bool, optional) – Whether to fit a symmetric distribution or not. Default to False.

  • standardize (bool, optional) – Whether to standardize the data before fitting or not. Default to False.

  • nit (int, optional) – The maximum number of iterations to use in the EM algorithm. Defaults to 2000.

  • reltol (float, optional) – The relative convergence criterion for the log-likelihood function. Defaults to 1e-8.

  • abstol (float, optional) – The relative convergence criterion for the log-likelihood function. Defaults to 1e-7.

  • silent (bool, optional) – Whether to print the log-likelihoods and parameter estimates during fitting or not. Defaults to False.

  • flmbda (np.ndarray, optional) – If flmbda!=None, force lmbda to flmbda. Defaults to None.

  • falpha_bar (np.ndarray, optional) – If falpha_bar!=None, force alpha_bar to falpha_bar. Defaults to None.

  • fmu (np.ndarray, optional) – If fmu!=None, force mu to fmu. Defaults to None.

  • fsigma (np.ndarray, optional) – If fsigma!=None, force sigma to fsigma. Defaults to None.

  • fgamma (np.ndarray, optional) – If fgamma!=None, force gamma to fgamma. Defaults to None.

  • return_loglike (np.ndarray, optional) – Return a list of log-likelihood values at each iteration. Defaults to False.

Tpe lmbda

float, optional

Returns

The fitted parameters (<float> lmbda, <float> chi, <float> psi, <array> mu, <array> sigma, <array> gamma). Also returns a list of log-likelihood values at each iteration of the EM algorithm if return_loglike=True.

Return type

tuple

mvem.stats.multivariate_genhyperbolic.fitghypmv

mvem.stats.multivariate_genhyperbolic.fitghypmv(x, lmbda=1, alpha_bar=1, mu=None, sigma=None, gamma=None, symmetric=False, standardize=False, nit=2000, reltol=1e-08, abstol=1e-07, silent=False, opt_pars={'alpha_bar': True, 'gamma': True, 'lmbda': True, 'mu': True, 'sigma': True})[source]

Estimate the parameters of the generalised hyperbolic distribution. We use the (lmbda, chi, psi, mu, sigma, gamma)-parameterisation. Covers all special cases as well.

Parameters
  • x (np.ndarray) – An array of shape (n, p) containing n observations of some p-variate data with n > p.

  • lmbda – The intial value of lmbda. Defaults to 1.

  • alpha_bar (float, optional) – The initial value of alpha_bar. Defaults to 1.

  • mu (np.ndarray, optional) – Optional initial value of mu, an array of shape (p,)

  • sigma (np.ndarray, optional) – Optional initial value of sigma, an array of shape (p,p)

  • gamma (np.ndarray, optional) – Optional initial value of gamma, an array of shape (p,)

  • symmetric (bool, optional) – Whether to fit a symmetric distribution or not. Default to False.

  • standardize (bool, optional) – Whether to standardize the data before fitting or not. Default to False.

  • nit (int, optional) – The maximum number of iterations to use in the EM algorithm. Defaults to 2000.

  • reltol (float, optional) – The relative convergence criterion for the log-likelihood function. Defaults to 1e-8.

  • abstol (float, optional) – The relative convergence criterion for the log-likelihood function. Defaults to 1e-7.

  • silent (bool, optional) – Whether to print the log-likelihoods and parameter estimates during fitting or not. Defaults to False.

  • opt_pars (dict, optional) – A dict of (lmbda, alpha_bar, mu, sigma, gamma) with boolean values, denoting if the parameters should be estimated or fixed to their initial value. Defaults to fitting all parameters.

Tpe lmbda

float, optional

Returns

The fitted parameters (<float> lmbda, <float> alpha_bar, <array> mu, <array> sigma, <array> gamma) and a list of log-likelihood values at each iteration of the EM algorithm, the number of performed iterations, whether the algorithm coverged, and the final AIC.

Return type

dict

mvem.stats.multivariate_genhyperbolic.gig_optfunc

mvem.stats.multivariate_genhyperbolic.gig_optfunc(thepars, mix_pars_fixed, pars_order, delta_sum, eta_sum, xi_sum, n_rows)[source]

Log-likelihood function of the generalized inverse gaussian distribution

mvem.stats.multivariate_genhyperbolic.loglike

mvem.stats.multivariate_genhyperbolic.loglike(x, lmbda, chi, psi, mu, sigma, gamma)[source]

Log-likelihood function of the generalised hyperbolic distribution. We use the (lmbda, chi, psi, mu, sigma, gamma)-parameterisation.

Parameters
  • x (np.ndarray) – An array of shape (n, p) containing n observations of some p-variate data with n > p.

  • lmbda (float) – Univariate parameter.

  • chi (float) – Univariate parameter.

  • psi (float) – Univariate parameter.

  • mu (np.ndarray) – Location parameter with shape (p,).

  • sigma (np.ndarray) – A positive semi-definite array with shape (p, p).

  • gamma (np.ndarray) – Parameter with shape (p,).

Returns

The log-likelihood given all observations and parameters.

Return type

float

mvem.stats.multivariate_genhyperbolic.logpdf

mvem.stats.multivariate_genhyperbolic.logpdf(x, lmbda, chi, psi, mu, sigma, gamma)[source]

Log-probability density function of the generalised hyperbolic distribution. We use the (lmbda, chi, psi, mu, sigma, gamma)-parameterisation.

Parameters
  • x (np.ndarray) – An array of shape (n, p) containing n observations of some p-variate data with n > p.

  • lmbda (float) – Univariate parameter.

  • chi (float) – Univariate parameter.

  • psi (float) – Univariate parameter.

  • mu (np.ndarray) – Location parameter with shape (p,).

  • sigma (np.ndarray) – A positive semi-definite array with shape (p, p).

  • gamma (np.ndarray) – Parameter with shape (p,).

Returns

The log-density at each observation.

Return type

np.ndarray with shape (n,).

mvem.stats.multivariate_genhyperbolic.mean

mvem.stats.multivariate_genhyperbolic.mean(lmbda, chi, psi, mu, sigma, gamma)[source]

Mean function of the generalised hyperbolic distribution. We use the (lmbda, chi, psi, mu, sigma, gamma)-parameterisation.

Parameters
  • lmbda (float) – Univariate parameter.

  • chi (float) – Univariate parameter.

  • psi (float) – Univariate parameter.

  • mu (np.ndarray) – Location parameter with shape (p,).

  • sigma (np.ndarray) – A positive semi-definite array with shape (p, p).

  • gamma (np.ndarray) – Parameter with shape (p,).

Returns

The mean of the specified distribution.

Return type

np.ndarray with shape (p,).

mvem.stats.multivariate_genhyperbolic.pdf

mvem.stats.multivariate_genhyperbolic.pdf(x, lmbda, chi, psi, mu, sigma, gamma)[source]

Probability density function of the generalised hyperbolic distribution. We use the (lmbda, chi, psi, mu, sigma, gamma)-parameterisation.

Parameters
  • x (np.ndarray) – An array of shape (n, p) containing n observations of some p-variate data with n > p.

  • lmbda (float) – Univariate parameter.

  • chi (float) – Univariate parameter.

  • psi (float) – Univariate parameter.

  • mu (np.ndarray) – Location parameter with shape (p,).

  • sigma (np.ndarray) – A positive semi-definite array with shape (p, p).

  • gamma (np.ndarray) – Parameter with shape (p,).

Returns

The density at each observation.

Return type

np.ndarray with shape (n,).

mvem.stats.multivariate_genhyperbolic.rvs

mvem.stats.multivariate_genhyperbolic.rvs(lmbda, chi, psi, mu, sigma, gamma, size=1)[source]

Random number generator of the generalised hyperbolic distribution. We use the (lmbda, chi, psi, mu, sigma, gamma)-parameterisation.

Parameters
  • lmbda (float) – Univariate parameter.

  • chi (float) – Univariate parameter.

  • psi (float) – Univariate parameter.

  • mu (np.ndarray) – Location parameter with shape (p,).

  • sigma (np.ndarray) – A positive semi-definite array with shape (p, p).

  • gamma (np.ndarray) – Parameter with shape (p,).

  • size (int, optional) – The number of samples to draw. Defaults to 1.

Returns

The random p-variate numbers generated.

Return type

np.ndarray with shape (n, p).

mvem.stats.multivariate_genhyperbolic.t_optfunc

mvem.stats.multivariate_genhyperbolic.t_optfunc(thepars, delta_sum, xi_sum, n_rows)[source]

Log-likelihood function of the inverse gamma distribution

mvem.stats.multivariate_genhyperbolic.var

mvem.stats.multivariate_genhyperbolic.var(lmbda, chi, psi, mu, sigma, gamma)[source]

Variance function of the generalised hyperbolic distribution. We use the (lmbda, chi, psi, mu, sigma, gamma)-parameterisation.

Parameters
  • lmbda (float) – Univariate parameter.

  • chi (float) – Univariate parameter.

  • psi (float) – Univariate parameter.

  • mu (np.ndarray) – Location parameter with shape (p,).

  • sigma (np.ndarray) – A positive semi-definite array with shape (p, p).

  • gamma (np.ndarray) – Parameter with shape (p,).

Returns

The variance of the specified distribution.

Return type

np.ndarray with shape (p,).

mvem.stats.multivariate_genhyperbolic.vg_optfunc

mvem.stats.multivariate_genhyperbolic.vg_optfunc(thepars, xi_sum, eta_sum, n_rows)[source]

Log-likelihood function of the gamma distribution