distributions module

btQuant.distributions.adTest(data, distName='normal')[source]

Anderson-Darling test for normality.

Parameters:
  • data – array of observations

  • distName – currently only ‘normal’ supported

Returns:

dict with statistic, critical values

btQuant.distributions.fitBeta(data, maxIter=100)[source]

Fit beta distribution using method of moments.

Parameters:
  • data – array of observations in (0, 1)

  • maxIter – maximum iterations

Returns:

dict with alpha, beta parameters, logLikelihood

btQuant.distributions.fitExponential(data)[source]

Fit exponential distribution.

Parameters:

data – array of positive observations

Returns:

dict with lambda (rate), logLikelihood

btQuant.distributions.fitGamma(data, maxIter=100)[source]

Fit gamma distribution using method of moments.

Parameters:
  • data – array of positive observations

  • maxIter – maximum iterations

Returns:

dict with alpha (shape), beta (rate), logLikelihood

btQuant.distributions.fitLognormal(data)[source]

Fit lognormal distribution.

Parameters:

data – array of positive observations

Returns:

dict with mu, sigma (of log), logLikelihood

btQuant.distributions.fitMixture(data, nComponents=2, maxIter=100)[source]

Fit Gaussian mixture model using EM algorithm.

Parameters:
  • data – array of observations

  • nComponents – number of mixture components

  • maxIter – maximum iterations

Returns:

dict with means, sigmas, weights

btQuant.distributions.fitNormal(data)[source]

Fit normal distribution.

Parameters:

data – array of observations

Returns:

dict with mu, sigma, logLikelihood

btQuant.distributions.fitT(data, maxIter=50)[source]

Fit Student’s t distribution.

Parameters:
  • data – array of observations

  • maxIter – maximum iterations

Returns:

dict with df (degrees of freedom), mu, sigma, logLikelihood

btQuant.distributions.jsDivergence(p, q)[source]

Jensen-Shannon divergence.

Parameters:
  • p – first distribution

  • q – second distribution

Returns:

JS divergence

btQuant.distributions.klDivergence(p, q)[source]

Kullback-Leibler divergence.

Parameters:
  • p – true distribution (probabilities)

  • q – approximate distribution (probabilities)

Returns:

KL divergence

btQuant.distributions.ksTest(data, distName='normal', params=None)[source]

Kolmogorov-Smirnov test for distribution fit.

Parameters:
  • data – array of observations

  • distName – ‘normal’, ‘lognormal’, ‘exponential’

  • params – dict of distribution parameters (if None, estimated)

Returns:

dict with statistic, pValue (approximate)

btQuant.distributions.moments(data)[source]

Calculate distribution moments.

Parameters:

data – array of observations

Returns:

dict with mean, variance, skewness, kurtosis

btQuant.distributions.qqPlot(data, distName='normal')[source]

Generate Q-Q plot data.

Parameters:
  • data – array of observations

  • distName – reference distribution

Returns:

dict with theoretical and empirical quantiles

btQuant.distributions.quantile(data, q)[source]

Calculate quantile.

Parameters:
  • data – array of observations

  • q – quantile level (0 to 1)

Returns:

quantile value