smile.stat.distribution

## Class ChiSquareDistribution

• All Implemented Interfaces:
java.io.Serializable, Distribution, ExponentialFamily

```public class ChiSquareDistribution
extends AbstractDistribution
implements ExponentialFamily```
Chi-square (or chi-squared) distribution with k degrees of freedom is the distribution of a sum of the squares of k independent standard normal random variables. It's mean and variance are k and 2k, respectively. The chi-square distribution is a special case of the gamma distribution. It follows from the definition of the chi-square distribution that the sum of independent chi-square variables is also chi-square distributed. Specifically, if Xi are independent chi-square variables with ki degrees of freedom, respectively, then Y = Σ Xi is chi-square distributed with Σ ki degrees of freedom.

The chi-square distribution has numerous applications in inferential statistics, for instance in chi-square tests and in estimating variances. Many other statistical tests also lead to a use of this distribution, like Friedman's analysis of variance by ranks.

Serialized Form
• ### Field Summary

Fields
Modifier and Type Field and Description
`int` `nu`
The degrees of freedom.
• ### Constructor Summary

Constructors
Constructor and Description
`ChiSquareDistribution(int nu)`
Constructor.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`double` `cdf(double x)`
Cumulative distribution function.
`double` `entropy()`
Shannon entropy of the distribution.
`int` `length()`
The number of parameters of the distribution.
`double` `logp(double x)`
The density at x in log scale, which may prevents the underflow problem.
`Mixture.Component` ```M(double[] x, double[] posteriori)```
The M step in the EM algorithm, which depends the specific distribution.
`double` `mean()`
The mean of distribution.
`double` `p(double x)`
The probability density function for continuous distribution or probability mass function for discrete distribution at x.
`double` `quantile(double p)`
The quantile, the probability to the left of quantile is p.
`double` `rand()`
Generates a random number following this distribution.
`double` `sd()`
The standard deviation of distribution.
`java.lang.String` `toString()`
`double` `variance()`
The variance of distribution.
• ### Methods inherited from class smile.stat.distribution.AbstractDistribution

`inverseTransformSampling, quantile, quantile, rejection`
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
• ### Methods inherited from interface smile.stat.distribution.Distribution

`likelihood, logLikelihood, rand`
• ### Field Detail

• #### nu

`public final int nu`
The degrees of freedom.
• ### Constructor Detail

• #### ChiSquareDistribution

`public ChiSquareDistribution(int nu)`
Constructor.
Parameters:
`nu` - the degree of freedom.
• ### Method Detail

• #### length

`public int length()`
Description copied from interface: `Distribution`
The number of parameters of the distribution. The "length" is in the sense of the minimum description length principle.
Specified by:
`length` in interface `Distribution`
• #### mean

`public double mean()`
Description copied from interface: `Distribution`
The mean of distribution.
Specified by:
`mean` in interface `Distribution`
• #### variance

`public double variance()`
Description copied from interface: `Distribution`
The variance of distribution.
Specified by:
`variance` in interface `Distribution`
• #### sd

`public double sd()`
Description copied from interface: `Distribution`
The standard deviation of distribution.
Specified by:
`sd` in interface `Distribution`
• #### entropy

`public double entropy()`
Description copied from interface: `Distribution`
Shannon entropy of the distribution.
Specified by:
`entropy` in interface `Distribution`
• #### toString

`public java.lang.String toString()`
Overrides:
`toString` in class `java.lang.Object`
• #### rand

`public double rand()`
Description copied from interface: `Distribution`
Generates a random number following this distribution.
Specified by:
`rand` in interface `Distribution`
• #### p

`public double p(double x)`
Description copied from interface: `Distribution`
The probability density function for continuous distribution or probability mass function for discrete distribution at x.
Specified by:
`p` in interface `Distribution`
• #### logp

`public double logp(double x)`
Description copied from interface: `Distribution`
The density at x in log scale, which may prevents the underflow problem.
Specified by:
`logp` in interface `Distribution`
• #### cdf

`public double cdf(double x)`
Description copied from interface: `Distribution`
Cumulative distribution function. That is the probability to the left of x.
Specified by:
`cdf` in interface `Distribution`
• #### quantile

`public double quantile(double p)`
Description copied from interface: `Distribution`
The quantile, the probability to the left of quantile is p. It is actually the inverse of cdf.
Specified by:
`quantile` in interface `Distribution`
• #### M

```public Mixture.Component M(double[] x,
double[] posteriori)```
Description copied from interface: `ExponentialFamily`
The M step in the EM algorithm, which depends the specific distribution.
Specified by:
`M` in interface `ExponentialFamily`
Parameters:
`x` - the input data for estimation
`posteriori` - the posteriori probability.
Returns:
the (unnormalized) weight of this distribution in the mixture.