umontreal.iro.lecuyer.probdist
Class BetaSymmetricalDist
- java.lang.Object
-
- umontreal.iro.lecuyer.probdist.ContinuousDistribution
-
- umontreal.iro.lecuyer.probdist.BetaDist
-
- umontreal.iro.lecuyer.probdist.BetaSymmetricalDist
-
- All Implemented Interfaces:
- Distribution
public class BetaSymmetricalDist extends BetaDist
Specializes the classBetaDistto the case of a symmetrical beta distribution over the interval [0, 1], with shape parameters α = β. A faster inversion method is implemented here for this special case. Because of the symmetry around 1/2, four series are used to compute the cdf, two around x = 0 and two around x = 1/2. Given u, one then solves each series for x by using the Newton-Raphson method which shows quadratic convergence when the starting iterate is close enough to the solution x.
-
-
Field Summary
-
Fields inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
decPrec
-
-
Constructor Summary
Constructors Constructor and Description BetaSymmetricalDist(double alpha)Constructs a BetaSymmetricalDist object with parameters α = β = alpha, over the unit interval (0, 1).BetaSymmetricalDist(double alpha, int d)Same as BetaSymmetricalDist (alpha), but using approximations of roughly d decimal digits of precision when computing the distribution, complementary distribution, and inverse functions.
-
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(double alpha, int d, double x)Returns the complementary distribution function.doublecdf(double x)Returns the distribution function F(x).static doublecdf(double alpha, int d, double x)Same ascdf(alpha, alpha, d, x).static doubledensity(double alpha, double x)Returns the density evaluated at x.static BetaSymmetricalDistgetInstanceFromMLE(double[] x, int n)Creates a new instance of a symmetrical beta distribution with parameter α estimated using the maximum likelihood method based on the n observations x[i], i = 0, 1,…, n - 1.doublegetMean()Returns the mean.static doublegetMean(double alpha)Computes and returns the mean E[X] = 1/2 of the symmetrical beta distribution with parameter α.static double[]getMLE(double[] x, int n)Estimates the parameter α of the symmetrical beta distribution over the interval [0, 1] using the maximum likelihood method, from the n observations x[i], i = 0, 1,…, n - 1.double[]getParams()Return a table containing the parameter of the current distribution.doublegetStandardDeviation()Returns the standard deviation.static doublegetStandardDeviation(double alpha)Computes and returns the standard deviation of the symmetrical beta distribution with parameter α.doublegetVariance()Returns the variance.static doublegetVariance(double alpha)Computes and returns the variance, Var[X] = 1/(8α + 4), of the symmetrical beta distribution with parameter α.doubleinverseF(double u)Returns the inverse distribution function x = F-1(u).static doubleinverseF(double alpha, double u)Returns the inverse distribution function evaluated at u, for the symmetrical beta distribution over the interval [0, 1], with shape parameters 0 < α = β = alpha.voidsetParams(double alpha, double beta, double a, double b, int d)java.lang.StringtoString()-
Methods inherited from class umontreal.iro.lecuyer.probdist.BetaDist
barF, barF, cdf, cdf, density, density, density, getA, getAlpha, getB, getBeta, getMean, getMean, getStandardDeviation, getStandardDeviation, getVariance, getVariance, inverseF, inverseF
-
Methods inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
getXinf, getXsup, inverseBisection, inverseBrent, setXinf, setXsup
-
-
-
-
Constructor Detail
-
BetaSymmetricalDist
public BetaSymmetricalDist(double alpha)
Constructs a BetaSymmetricalDist object with parameters α = β = alpha, over the unit interval (0, 1).
-
BetaSymmetricalDist
public BetaSymmetricalDist(double alpha, int d)Same as BetaSymmetricalDist (alpha), but using approximations of roughly d decimal digits of precision when computing the distribution, complementary distribution, and inverse functions.
-
-
Method Detail
-
cdf
public double cdf(double x)
Description copied from interface:DistributionReturns the distribution function F(x).- Specified by:
cdfin interfaceDistribution- Overrides:
cdfin classBetaDist- 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 classBetaDist- Parameters:
u- value at which the inverse distribution function is evaluated- Returns:
- the inverse distribution function evaluated at u
-
density
public static double density(double alpha, double x)Returns the density evaluated at x.
-
cdf
public static double cdf(double alpha, int d, double x)Same ascdf(alpha, alpha, d, x).
-
barF
public static double barF(double alpha, int d, double x)Returns the complementary distribution function.
-
inverseF
public static double inverseF(double alpha, double u)Returns the inverse distribution function evaluated at u, for the symmetrical beta distribution over the interval [0, 1], with shape parameters 0 < α = β = alpha. Uses four different hypergeometric series to compute the distribution u = F(x) (for the four cases x close to 0 and α < 1, x close to 0 and α > 1, x close to 1/2 and α < 1, and x close to 1/2 and α > 1), which are then solved by Newton's method for the solution of equations. For α > 100000, uses a normal approximation given in.
-
getMean
public double getMean()
Description copied from class:ContinuousDistributionReturns the mean.- Specified by:
getMeanin interfaceDistribution- Overrides:
getMeanin classBetaDist- Returns:
- the mean
-
getVariance
public double getVariance()
Description copied from class:ContinuousDistributionReturns the variance.- Specified by:
getVariancein interfaceDistribution- Overrides:
getVariancein classBetaDist- Returns:
- the variance
-
getStandardDeviation
public double getStandardDeviation()
Description copied from class:ContinuousDistributionReturns the standard deviation.- Specified by:
getStandardDeviationin interfaceDistribution- Overrides:
getStandardDeviationin classBetaDist- Returns:
- the standard deviation
-
getMLE
public static double[] getMLE(double[] x, int n)Estimates the parameter α of the symmetrical beta distribution over the interval [0, 1] using the maximum likelihood method, from the n observations x[i], i = 0, 1,…, n - 1. The estimate is returned in element 0 of the returned array.- Parameters:
x- the list of observations to use to evaluate parametersn- the number of observations to use to evaluate parameters- Returns:
- returns the parameter [ hat(α)]
-
getInstanceFromMLE
public static BetaSymmetricalDist getInstanceFromMLE(double[] x, int n)
Creates a new instance of a symmetrical beta distribution with parameter α estimated using the maximum likelihood method based on the n observations x[i], i = 0, 1,…, n - 1.- Parameters:
x- the list of observations to use to evaluate parametersn- the number of observations to use to evaluate parameters
-
getMean
public static double getMean(double alpha)
Computes and returns the mean E[X] = 1/2 of the symmetrical beta distribution with parameter α.- Returns:
- the mean of the symmetrical beta distribution E[X] = 1/2
-
getVariance
public static double getVariance(double alpha)
Computes and returns the variance, Var[X] = 1/(8α + 4), of the symmetrical beta distribution with parameter α.- Returns:
- the variance of the symmetrical beta distribution Var[X] = 1/[4(2α + 1)]
-
getStandardDeviation
public static double getStandardDeviation(double alpha)
Computes and returns the standard deviation of the symmetrical beta distribution with parameter α.- Returns:
- the standard deviation of the symmetrical beta distribution
-
setParams
public void setParams(double alpha, double beta, double a, double b, int d)
-
getParams
public double[] getParams()
Return a table containing the parameter of the current distribution.- Specified by:
getParamsin interfaceDistribution- Overrides:
getParamsin classBetaDist
-
-
DMelt 3.0 © DataMelt by jWork.ORG