SSJ
V. 2.6.

## umontreal.iro.lecuyer.probdist Class NormalInverseGaussianDist

```java.lang.Object
umontreal.iro.lecuyer.probdist.ContinuousDistribution
umontreal.iro.lecuyer.probdist.NormalInverseGaussianDist
```
All Implemented Interfaces:
Distribution

`public class NormalInverseGaussianDistextends ContinuousDistribution`

Extends the class `ContinuousDistribution` for the normal inverse gaussian distribution with location parameter μ, scale parameter δ > 0, tail heavyness α > 0, and asymmetry parameter β such that 0 <= | β| < α. Its density is

f (x) = αδeδγ+β(x-μ)K1(α(δ^2 + (x - μ)^2)1/2)/π(δ^2 + (x - μ)^2)1/2,

where K1 is the modified Bessel function of the second kind of order 1, and γ = (α^2 - β^2)1/2.

The distribution function is given by

F(x) = ∫-∞xdtf (t),

Field Summary

Fields inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
`decPrec`

Constructor Summary
```NormalInverseGaussianDist(double alpha, double beta, double mu, double delta)```
Constructor for a normal inverse gaussian distribution with parameters α = alpha, β = beta, μ = mu and δ = delta.

Method Summary
` double` `barF(double x)`
Returns the complementary distribution function.
`static double` ```barF(double alpha, double beta, double mu, double delta, double x)```
NOT IMPLEMENTED.
` double` `cdf(double x)`
Returns the distribution function F(x).
`static double` ```cdf(double alpha, double beta, double mu, double delta, double x)```
NOT IMPLEMENTED.
` double` `density(double x)`
Returns f (x), the density evaluated at x.
`static double` ```density(double alpha, double beta, double mu, double delta, double x)```
Computes the density function for the normal inverse gaussian distribution with parameters α, β, μ and δ, evaluated at x.
` double` `getAlpha()`
Returns the parameter α of this object.
` double` `getBeta()`
Returns the parameter β of this object.
` double` `getDelta()`
Returns the parameter δ of this object.
`static NormalInverseGaussianDist` ```getInstanceFromMLE(double[] x, int n)```
NOT IMPLEMENTED.
` double` `getMean()`
Returns the mean.
`static double` ```getMean(double alpha, double beta, double mu, double delta)```
Returns the mean E[X] = μ + δβ/γ of the normal inverse gaussian distribution with parameters α, β, μ and δ.
`static double[]` ```getMLE(double[] x, int n)```
NOT IMPLEMENTED.
` double` `getMu()`
Returns the parameter μ of this object.
` double[]` `getParams()`
Returns a table containing the parameters of the current distribution.
` double` `getStandardDeviation()`
Returns the standard deviation.
`static double` ```getStandardDeviation(double alpha, double beta, double mu, double delta)```
Computes and returns the standard deviation of the normal inverse gaussian distribution with parameters α, β, μ and δ.
` double` `getVariance()`
Returns the variance.
`static double` ```getVariance(double alpha, double beta, double mu, double delta)```
Computes and returns the variance Var[X] = δα2/γ3 of the normal inverse gaussian distribution with parameters α, β, μ and δ.
`static double` ```inverseF(double alpha, double beta, double mu, double delta, double u)```
NOT IMPLEMENTED.
` void` ```setParams(double alpha, double beta, double mu, double delta)```
Sets the parameters α, β, μ and δ of this object.
` String` `toString()`

Methods inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
`getXinf, getXsup, inverseBisection, inverseBrent, inverseF, setXinf, setXsup`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### NormalInverseGaussianDist

```public NormalInverseGaussianDist(double alpha,
double beta,
double mu,
double delta)```
Constructor for a normal inverse gaussian distribution with parameters α = alpha, β = beta, μ = mu and δ = delta.

Method Detail

### density

`public double density(double x)`
Description copied from class: `ContinuousDistribution`
Returns f (x), the density evaluated at x.

Specified by:
`density` in class `ContinuousDistribution`
Parameters:
`x` - value at which the density is evaluated
Returns:
density function evaluated at x

### cdf

`public double cdf(double x)`
Description copied from interface: `Distribution`
Returns the distribution function F(x).

Parameters:
`x` - value at which the distribution function is evaluated
Returns:
distribution function evaluated at x

### barF

`public double barF(double x)`
Description copied from class: `ContinuousDistribution`
Returns the complementary distribution function. The default implementation computes bar(F)(x) = 1 - F(x).

Specified by:
`barF` in interface `Distribution`
Overrides:
`barF` in class `ContinuousDistribution`
Parameters:
`x` - value at which the complementary distribution function is evaluated
Returns:
complementary distribution function evaluated at x

### getMean

`public double getMean()`
Description copied from class: `ContinuousDistribution`
Returns the mean.

Specified by:
`getMean` in interface `Distribution`
Overrides:
`getMean` in class `ContinuousDistribution`
Returns:
the mean

### getVariance

`public double getVariance()`
Description copied from class: `ContinuousDistribution`
Returns the variance.

Specified by:
`getVariance` in interface `Distribution`
Overrides:
`getVariance` in class `ContinuousDistribution`
Returns:
the variance

### getStandardDeviation

`public double getStandardDeviation()`
Description copied from class: `ContinuousDistribution`
Returns the standard deviation.

Specified by:
`getStandardDeviation` in interface `Distribution`
Overrides:
`getStandardDeviation` in class `ContinuousDistribution`
Returns:
the standard deviation

### density

```public static double density(double alpha,
double beta,
double mu,
double delta,
double x)```
Computes the density function for the normal inverse gaussian distribution with parameters α, β, μ and δ, evaluated at x.

### cdf

```public static double cdf(double alpha,
double beta,
double mu,
double delta,
double x)```
NOT IMPLEMENTED. Computes the distribution function of the normal inverse gaussian distribution with parameters α, β, μ and δ, evaluated at x.

### barF

```public static double barF(double alpha,
double beta,
double mu,
double delta,
double x)```
NOT IMPLEMENTED. Computes the complementary distribution function of the normal inverse gaussian distribution with parameters α, β, μ and δ, evaluated at x.

### inverseF

```public static double inverseF(double alpha,
double beta,
double mu,
double delta,
double u)```
NOT IMPLEMENTED. Computes the inverse of the normal inverse gaussian distribution with parameters α, β, μ and δ.

### getMLE

```public static double[] getMLE(double[] x,
int n)```
NOT IMPLEMENTED.

Parameters:
`x` - the list of observations used to evaluate parameters
`n` - the number of observations used to evaluate parameters
Returns:
returns the parameters [ hat(α), hat(β), hat(μ), hat(δ)]

### getInstanceFromMLE

```public static NormalInverseGaussianDist getInstanceFromMLE(double[] x,
int n)```
NOT IMPLEMENTED.

Parameters:
`x` - the list of observations to use to evaluate parameters
`n` - the number of observations to use to evaluate parameters

### getMean

```public static double getMean(double alpha,
double beta,
double mu,
double delta)```
Returns the mean E[X] = μ + δβ/γ of the normal inverse gaussian distribution with parameters α, β, μ and δ.

Returns:
the mean of the normal inverse gaussian distribution E[X] = μ + δβ/γ

### getVariance

```public static double getVariance(double alpha,
double beta,
double mu,
double delta)```
Computes and returns the variance Var[X] = δα2/γ3 of the normal inverse gaussian distribution with parameters α, β, μ and δ.

Returns:
the variance of the normal inverse gaussian distribution Var[X] = δα2/γ3

### getStandardDeviation

```public static double getStandardDeviation(double alpha,
double beta,
double mu,
double delta)```
Computes and returns the standard deviation of the normal inverse gaussian distribution with parameters α, β, μ and δ.

Returns:
the standard deviation of the normal inverse gaussian distribution

### getAlpha

`public double getAlpha()`
Returns the parameter α of this object.

### getBeta

`public double getBeta()`
Returns the parameter β of this object.

### getMu

`public double getMu()`
Returns the parameter μ of this object.

### getDelta

`public double getDelta()`
Returns the parameter δ of this object.

### setParams

```public void setParams(double alpha,
double beta,
double mu,
double delta)```
Sets the parameters α, β, μ and δ of this object.

### getParams

`public double[] getParams()`
Returns a table containing the parameters of the current distribution. This table is put in regular order: [α, β, μ, δ].

### toString

`public String toString()`
Overrides:
`toString` in class `Object`

SSJ
V. 2.6.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.