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 ChiSquareDist extends ContinuousDistribution
Extends the classContinuousDistributionfor the chi-square distribution with n degrees of freedom, where n is a positive integer. Its density isf (x) = x(n/2)-1e-x/2/(2n/2Γ(n/2)), for x > 0.where Γ(x) is the gamma function defined inGammaDist. 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 ofGammaDistfor 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
Constructors Constructor and Description ChiSquareDist(int n)Constructs a chi-square distribution with n degrees of freedom.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description doublebarF(double x)Returns the complementary distribution function.static doublebarF(int n, int d, double x)Computes the complementary chi-square distribution function with n degrees of freedom, evaluated at x.doublecdf(double x)Returns the distribution function F(x).static doublecdf(int n, int d, double x)Computes the chi-square distribution function with n degrees of freedom, evaluated at x.doubledensity(double x)Returns f (x), the density evaluated at x.static doubledensity(int n, double x)Computes the density function for a chi-square distribution with n degrees of freedom.static ChiSquareDistgetInstanceFromMLE(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.doublegetMean()Returns the mean.static doublegetMean(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.intgetN()Returns the parameter n of this object.double[]getParams()Return a table containing the parameters of the current distribution.doublegetStandardDeviation()Returns the standard deviation.static doublegetStandardDeviation(int n)Returns the standard deviation of the chi-square distribution with parameter n.doublegetVariance()Returns the variance.static doublegetVariance(int n)Returns the variance Var[X] = 2n of the chi-square distribution with parameter n.doubleinverseF(double u)Returns the inverse distribution function x = F-1(u).static doubleinverseF(int n, double u)Computes an approximation of F-1(u), where F is the chi-square distribution with n degrees of freedom.voidsetN(int n)Sets the parameter n of this object.java.lang.StringtoString()-
Methods inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
getXinf, getXsup, inverseBisection, inverseBrent, setXinf, setXsup
-
-
-
-
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:ContinuousDistributionReturns f (x), the density evaluated at x.- Specified by:
densityin classContinuousDistribution- 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:DistributionReturns 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:ContinuousDistributionReturns the complementary distribution function. The default implementation computes bar(F)(x) = 1 - F(x).- Specified by:
barFin interfaceDistribution- Overrides:
barFin classContinuousDistribution- 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:ContinuousDistributionReturns the inverse distribution function x = F-1(u). Restrictions: u∈[0, 1].- Specified by:
inverseFin interfaceDistribution- Overrides:
inverseFin classContinuousDistribution- 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:ContinuousDistributionReturns the mean.- Specified by:
getMeanin interfaceDistribution- Overrides:
getMeanin classContinuousDistribution- Returns:
- the mean
-
getVariance
public double getVariance()
Description copied from class:ContinuousDistributionReturns the variance.- Specified by:
getVariancein interfaceDistribution- Overrides:
getVariancein classContinuousDistribution- Returns:
- the variance
-
getStandardDeviation
public double getStandardDeviation()
Description copied from class:ContinuousDistributionReturns the standard deviation.- Specified by:
getStandardDeviationin interfaceDistribution- Overrides:
getStandardDeviationin classContinuousDistribution- 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 parametersm- 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 parametersm- 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 parametersm- 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 java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-
DMelt 3.0 © DataMelt by jWork.ORG