SSJ
V. 2.6.

## umontreal.iro.lecuyer.probdist Class ChiSquareDist

```java.lang.Object
umontreal.iro.lecuyer.probdist.ContinuousDistribution
umontreal.iro.lecuyer.probdist.ChiSquareDist
```
All Implemented Interfaces:
Distribution
Direct Known Subclasses:
ChiSquareDistQuick

`public class ChiSquareDistextends ContinuousDistribution`

Extends the class `ContinuousDistribution` for the chi-square distribution with n degrees of freedom, where n is a positive integer. Its density is

f (x) = x(n/2)-1e-x/2/(2n/2Γ(n/2)),         for x > 0.

where Γ(x) is the gamma function defined in `GammaDist`. The chi-square distribution is a special case of the gamma distribution with shape parameter n/2 and scale parameter 1/2. Therefore, one can use the methods of `GammaDist` for this distribution.

The non-static versions of the methods cdf, barF, and inverseF call the static version of the same name.

Field Summary

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

Constructor Summary
`ChiSquareDist(int n)`
Constructs a chi-square distribution with n degrees of freedom.

Method Summary
` double` `barF(double x)`
Returns the complementary distribution function.
`static double` ```barF(int n, int d, double x)```
Computes the complementary chi-square distribution function with n degrees of freedom, evaluated at x.
` double` `cdf(double x)`
Returns the distribution function F(x).
`static double` ```cdf(int n, int d, double x)```
Computes the chi-square distribution function with n degrees of freedom, evaluated at x.
` double` `density(double x)`
Returns f (x), the density evaluated at x.
`static double` ```density(int n, double x)```
Computes the density function for a chi-square distribution with n degrees of freedom.
`static ChiSquareDist` ```getInstanceFromMLE(double[] x, int m)```
Creates a new instance of a chi-square distribution with parameter n estimated using the maximum likelihood method based on the m observations x[i], i = 0, 1,…, m - 1.
` double` `getMean()`
Returns the mean.
`static double` `getMean(int n)`
Computes and returns the mean E[X] = n of the chi-square distribution with parameter n.
`static double[]` ```getMLE(double[] x, int m)```
Estimates the parameter n of the chi-square distribution using the maximum likelihood method, from the m observations x[i], i = 0, 1,…, m - 1.
`static double[]` ```getMomentsEstimate(double[] x, int m)```
Estimates and returns the parameter [hat(n)] of the chi-square distribution using the moments method based on the m observations in table x[i], i = 0, 1,…, m - 1.
` int` `getN()`
Returns the parameter n of this object.
` double[]` `getParams()`
Return a table containing the parameters of the current distribution.
` double` `getStandardDeviation()`
Returns the standard deviation.
`static double` `getStandardDeviation(int n)`
Returns the standard deviation of the chi-square distribution with parameter n.
` double` `getVariance()`
Returns the variance.
`static double` `getVariance(int n)`
Returns the variance Var[X] = 2n of the chi-square distribution with parameter n.
` double` `inverseF(double u)`
Returns the inverse distribution function x = F-1(u).
`static double` ```inverseF(int n, double u)```
Computes an approximation of F-1(u), where F is the chi-square distribution with n degrees of freedom.
` void` `setN(int n)`
Sets the parameter n of this object.
` String` `toString()`

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

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

Constructor Detail

### ChiSquareDist

`public ChiSquareDist(int n)`
Constructs a chi-square distribution with n degrees of freedom.

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

### inverseF

`public double inverseF(double u)`
Description copied from class: `ContinuousDistribution`
Returns the inverse distribution function x = F-1(u). Restrictions: u∈[0, 1].

Specified by:
`inverseF` in interface `Distribution`
Overrides:
`inverseF` in class `ContinuousDistribution`
Parameters:
`u` - value at which the inverse distribution function is evaluated
Returns:
the inverse distribution function evaluated at u

### 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(int n,
double x)```
Computes the density function for a chi-square distribution with n degrees of freedom.

### cdf

```public static double cdf(int n,
int d,
double x)```
Computes the chi-square distribution function with n degrees of freedom, evaluated at x. The method tries to return d decimals digits of precision, but there is no guarantee.

### barF

```public static double barF(int n,
int d,
double x)```
Computes the complementary chi-square distribution function with n degrees of freedom, evaluated at x. The method tries to return d decimals digits of precision, but there is no guarantee.

### inverseF

```public static double inverseF(int n,
double u)```
Computes an approximation of F-1(u), where F is the chi-square distribution with n degrees of freedom. It gives at least 6 decimal digits of precision, except far in the tails (that is, for u < 10-5 or u > 1 - 10-5) where the function calls the method GammaDist.inverseF (n/2, 7, u) and multiplies the result by 2.0. To get better precision, one may call GammaDist.inverseF, but this method is slower than the current method, especially for large n. For instance, for n = 16, 1024, and 65536, the GammaDist.inverseF method is 2, 5, and 8 times slower, respectively, than the current method.

### getMLE

```public static double[] getMLE(double[] x,
int m)```
Estimates the parameter n of the chi-square distribution using the maximum likelihood method, from the m observations x[i], i = 0, 1,…, m - 1. The estimate is returned in element 0 of the returned array.

Parameters:
`x` - the list of observations to use to evaluate parameters
`m` - the number of observations to use to evaluate parameters
Returns:
returns the parameter [hat(n)]

### getInstanceFromMLE

```public static ChiSquareDist getInstanceFromMLE(double[] x,
int m)```
Creates a new instance of a chi-square distribution with parameter n estimated using the maximum likelihood method based on the m observations x[i], i = 0, 1,…, m - 1.

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

### getMean

`public static double getMean(int n)`
Computes and returns the mean E[X] = n of the chi-square distribution with parameter n.

Returns:
the mean of the Chi-square distribution E[X] = n

### getMomentsEstimate

```public static double[] getMomentsEstimate(double[] x,
int m)```
Estimates and returns the parameter [hat(n)] of the chi-square distribution using the moments method based on the m observations in table x[i], i = 0, 1,…, m - 1.

Parameters:
`x` - the list of observations to use to evaluate parameters
`m` - the number of observations to use to evaluate parameters
Returns:
returns the parameter [hat(n)]

### getVariance

`public static double getVariance(int n)`
Returns the variance Var[X] = 2n of the chi-square distribution with parameter n.

Returns:
the variance of the chi-square distribution VarX] = 2n

### getStandardDeviation

`public static double getStandardDeviation(int n)`
Returns the standard deviation of the chi-square distribution with parameter n.

Returns:
the standard deviation of the chi-square distribution

### getN

`public int getN()`
Returns the parameter n of this object.

### setN

`public void setN(int n)`
Sets the parameter n of this object.

### getParams

`public double[] getParams()`
Return a table containing the parameters of the current distribution.

### 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.