Package smile.stat.distribution
Class BetaDistribution
java.lang.Object
smile.stat.distribution.BetaDistribution
- All Implemented Interfaces:
Serializable
,Distribution
,ExponentialFamily
The beta distribution is defined on the interval [0, 1] parameterized by
two positive shape parameters, typically denoted by α and β.
It is the special case of the Dirichlet distribution with only two parameters.
The beta distribution is used as a prior distribution for binomial
proportions in Bayesian analysis. In Bayesian statistics, it can be seen as
the posterior distribution of the parameter α of a binomial distribution
after observing α - 1 independent events with probability α and β - 1 with
probability 1 - α, if the prior distribution of α was uniform.
If α = 1 and β =1, the Beta distribution is the uniform [0, 1] distribution.
The probability density function of the beta distribution is
f(x;α,β) = xα-1(1-x)β-1 / B(α,β)
where B(α,β) is the beta function.
- See Also:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiondouble
alpha()
Returns the shape parameter alpha.double
beta()
Returns the shape parameter beta.double
cdf
(double x) Cumulative distribution function.double
entropy()
Returns Shannon entropy of the distribution.static BetaDistribution
fit
(double[] data) Estimates the distribution parameters by the moment method.int
length()
Returns the number of parameters of the distribution.double
logp
(double x) The density at x in log scale, which may prevents the underflow problem.M
(double[] x, double[] posteriori) The M step in the EM algorithm, which depends on the specific distribution.double
mean()
Returns 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.toString()
double
variance()
Returns the variance of distribution.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
inverseTransformSampling, likelihood, logLikelihood, quantile, quantile, rand, rejectionSampling, sd
-
Field Details
-
alpha
public final double alphaThe shape parameter. -
beta
public final double betaThe shape parameter.
-
-
Constructor Details
-
BetaDistribution
public BetaDistribution(double alpha, double beta) Constructor.- Parameters:
alpha
- shape parameter.beta
- shape parameter.
-
-
Method Details
-
fit
Estimates the distribution parameters by the moment method.- Parameters:
data
- the samples.- Returns:
- the distribution.
-
alpha
public double alpha()Returns the shape parameter alpha.- Returns:
- the shape parameter alpha
-
beta
public double beta()Returns the shape parameter beta.- Returns:
- the shape parameter beta
-
length
public int length()Description copied from interface:Distribution
Returns the number of parameters of the distribution. The "length" is in the sense of the minimum description length principle.- Specified by:
length
in interfaceDistribution
- Returns:
- The number of parameters.
-
mean
public double mean()Description copied from interface:Distribution
Returns the mean of distribution.- Specified by:
mean
in interfaceDistribution
- Returns:
- The mean.
-
variance
public double variance()Description copied from interface:Distribution
Returns the variance of distribution.- Specified by:
variance
in interfaceDistribution
- Returns:
- The variance.
-
entropy
public double entropy()Description copied from interface:Distribution
Returns Shannon entropy of the distribution.- Specified by:
entropy
in interfaceDistribution
- Returns:
- Shannon entropy.
-
toString
-
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 interfaceDistribution
- Parameters:
x
- a real number.- Returns:
- the density.
-
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 interfaceDistribution
- Parameters:
x
- a real number.- Returns:
- the log density.
-
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 interfaceDistribution
- Parameters:
x
- a real number.- Returns:
- the probability.
-
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 interfaceDistribution
- Parameters:
p
- the probability.- Returns:
- the quantile.
-
M
Description copied from interface:ExponentialFamily
The M step in the EM algorithm, which depends on the specific distribution.- Specified by:
M
in interfaceExponentialFamily
- Parameters:
x
- the input data for estimationposteriori
- the posteriori probability.- Returns:
- the (unnormalized) weight of this distribution in the mixture.
-
rand
public double rand()Description copied from interface:Distribution
Generates a random number following this distribution.- Specified by:
rand
in interfaceDistribution
- Returns:
- a random number.
-