SSJ
V. 1.2.5.

## umontreal.iro.lecuyer.probdist Class StudentDist

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

`public class StudentDistextends ContinuousDistribution`

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

f (x) = [Γ((n + 1)/2)/(Γ(n/2)(πn)1/2)][1 + x2/n]-(n+1)/2        for - ∞ < x < ∞,

where Γ(x) is the gamma function defined in `GammaDist`.

The non-static methods `cdf` and `barF` use the same algorithm as in `cdf`.

Field Summary

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

Constructor Summary
`StudentDist(int n)`
Constructs a StudentDist object with n degrees of freedom.

Method Summary
`static double` ```barF(int n, double x)```
Computes the complementary distribution function bar(F)(x).
` double` `cdf(double x)`
Computes and returns the distribution function F(x).
`static double` ```cdf(int n, double x)```
Returns an approximation for the Student-t distribution function with n degrees of freedom.
`static double` ```cdf2(int n, int d, double x)```
Returns an approximation of the Student-t distribution function with n degrees of freedom.
` double` `density(double x)`
Returns f (x), the density of X evaluated at x.
`static double` ```density(int n, double x)```
Computes the density function for a Student-t distribution with n degrees of freedom.
`static StudentDist` ```getInstanceFromMLE(double[] x, int m)```
Creates a new instance of a Student-t distribution with parameter n estimated using the maximum likelihood method based on the m observations in table x[i], i = 0, 1,…, m - 1.
`static double[]` ```getMaximumLikelihoodEstimate(double[] x, int m)```
Estimates and returns the parameter [hat(n)] of the Student-t distribution using the maximum likelihood method based on the m observations in table x[i], i = 0, 1,…, m - 1.
` double` `getMean()`
Returns the mean of the distribution function.
`static double` `getMean(int n)`
Returns the mean E[X] = 0 of the Student-t distribution with parameter n.
` int` `getN()`
Returns the parameter n associated with this object.
` double` `getStandardDeviation()`
Returns the standard deviation of the distribution function.
`static double` `getStandardDeviation(int n)`
Computes and returns the standard deviation of the Student-t distribution with parameter n.
` double` `getVariance()`
Returns the variance of the distribution function.
`static double` `getVariance(int n)`
Computes and returns the variance Var[X] = n/(n - 2) of the Student-t distribution with parameter n.
` double` `inverseF(double u)`
Computes and returns the inverse distribution function F-1(u), defined in.
`static double` ```inverseF(int n, double u)```
Returns an approximation of F-1(u), where F is the Student-t distribution function with n degrees of freedom.
` void` `setN(int n)`
Sets the parameter n associated with this object.

Methods inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
`barF, inverseBisection, inverseBrent`

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

Constructor Detail

### StudentDist

`public StudentDist(int n)`
Constructs a StudentDist object with n degrees of freedom.

Method Detail

### density

`public double density(double x)`
Description copied from class: `ContinuousDistribution`
Returns f (x), the density of X 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`
Computes and returns the distribution function F(x).

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

### inverseF

`public double inverseF(double u)`
Description copied from interface: `Distribution`
Computes and returns the inverse distribution function F-1(u), defined in.

Specified by:
`inverseF` in interface `Distribution`
Overrides:
`inverseF` in class `ContinuousDistribution`
Parameters:
`u` - value in the interval (0, 1) for which the inverse distribution function is evaluated
Returns:
the inverse distribution function evaluated at u

### getMean

`public double getMean()`
Description copied from interface: `Distribution`
Returns the mean of the distribution function.

### getVariance

`public double getVariance()`
Description copied from interface: `Distribution`
Returns the variance of the distribution function.

### getStandardDeviation

`public double getStandardDeviation()`
Description copied from interface: `Distribution`
Returns the standard deviation of the distribution function.

### density

```public static double density(int n,
double x)```
Computes the density function for a Student-t distribution with n degrees of freedom.

### cdf

```public static double cdf(int n,
double x)```
Returns an approximation for the Student-t distribution function with n degrees of freedom. Gives at least 12 decimals of precision for n <= 103, and at least 10 decimals for 103 < n <= 105.

### cdf2

```public static double cdf2(int n,
int d,
double x)```
Returns an approximation of the Student-t distribution function with n degrees of freedom. Uses the relationship

 2F(x) = In/2, 1/2(n/(n + x2)) for x < 0, 2F(x) = I1/2, n/2(x2/(n + x2)) for x >= 0,

where Iα, β is the beta distribution function with parameters α and β (also called the incomplete beta ratio) defined in `BetaDist`, which is approximated by calling `BetaDist.cdf`. The function tries to return d decimals digits of precision (but there is no guarantee). This method is much slower (twenty to forty times, depending on parameters) than cdf, but could be used if precision is important.

### barF

```public static double barF(int n,
double x)```
Computes the complementary distribution function bar(F)(x).

### inverseF

```public static double inverseF(int n,
double u)```
Returns an approximation of F-1(u), where F is the Student-t distribution function with n degrees of freedom. Uses an approximation giving at least 5 decimal digits of precision when n >= 8 or n <= 2, and 3 decimal digits of precision when 3 <= n <= 7 .

### getInstanceFromMLE

```public static StudentDist getInstanceFromMLE(double[] x,
int m)```
Creates a new instance of a Student-t distribution with parameter n estimated using the maximum likelihood 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

### getMaximumLikelihoodEstimate

```public static double[] getMaximumLikelihoodEstimate(double[] x,
int m)```
Estimates and returns the parameter [hat(n)] of the Student-t distribution using the maximum likelihood 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)]

### getMean

`public static double getMean(int n)`
Returns the mean E[X] = 0 of the Student-t distribution with parameter n.

Returns:
the mean of the Student-t distribution E[X] = 0

### getVariance

`public static double getVariance(int n)`
Computes and returns the variance Var[X] = n/(n - 2) of the Student-t distribution with parameter n.

Returns:
the variance of the Student-t distribution Var[X] = n/(n - 2)

### getStandardDeviation

`public static double getStandardDeviation(int n)`
Computes and returns the standard deviation of the Student-t distribution with parameter n.

Returns:
the standard deviation of the Student-t distribution

### getN

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

### setN

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

SSJ
V. 1.2.5.

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