Class GammaDistribution
java.lang.Object
smile.stat.distribution.GammaDistribution
- All Implemented Interfaces:
Serializable, Distribution, ExponentialFamily
The Gamma distribution is a continuous probability distributions with
a scale parameter θ and a shape parameter k. If k is an
integer then the distribution represents the sum of k independent
exponentially distributed random variables, each of which has a rate
parameter of θ). The gamma distribution is frequently a probability
model for waiting times; for instance, the waiting time until death in life testing.
The probability density function is
f(x; k,θ) = xk-1e-x/θ / (θkΓ(k))
for
x > 0 and k, θ > 0.
- If X ∼ Γ(k=1, θ=1/λ), then X has an exponential distribution with rate parameter λ.
- If X ∼ Γ(k=ν/2, θ=2), then X is identical to Χ2(ν), the chi-square distribution with ν degrees of freedom. Conversely, if Q ∼ Χ2(ν), and c is a positive constant, then c ⋅ Q ∼ Γ(k=ν/2, θ=2c).
- If k is an integer, the gamma distribution is an Erlang distribution and is the probability distribution of the waiting time until the k-th "arrival" in a one-dimensional Poisson process with intensity 1/θ.
- If X2 ∼ Γ(3/2, 2a2), then X has a Maxwell-Boltzmann distribution with parameter a.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoublecdf(double x) Cumulative distribution function.doubleentropy()Returns Shannon entropy of the distribution.static GammaDistributionfit(double[] data) Estimates the distribution parameters by (approximate) MLE.intlength()Returns the number of parameters of the distribution.doublelogp(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.doublemean()Returns the mean of distribution.doublep(double x) The probability density function for continuous distribution or probability mass function for discrete distribution at x.doublequantile(double p) The quantile, the probability to the left of quantile is p.doublerand()Only support shape parameter k of integer.doublesd()Returns the standard deviation of distribution.toString()doublevariance()Returns the variance of distribution.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Distribution
inverseTransformSampling, likelihood, logLikelihood, quantile, quantile, rand, rejectionSampling
-
Field Details
-
theta
public final double thetaThe scale parameter. -
k
public final double kThe shape parameter.
-
-
Constructor Details
-
GammaDistribution
public GammaDistribution(double shape, double scale) Constructor.- Parameters:
shape- the shape parameter.scale- the scale parameter.
-
-
Method Details
-
fit
Estimates the distribution parameters by (approximate) MLE.- Parameters:
data- the training data.- Returns:
- the distribution.
-
length
public int length()Description copied from interface:DistributionReturns the number of parameters of the distribution. The "length" is in the sense of the minimum description length principle.- Specified by:
lengthin interfaceDistribution- Returns:
- The number of parameters.
-
mean
public double mean()Description copied from interface:DistributionReturns the mean of distribution.- Specified by:
meanin interfaceDistribution- Returns:
- The mean.
-
variance
public double variance()Description copied from interface:DistributionReturns the variance of distribution.- Specified by:
variancein interfaceDistribution- Returns:
- The variance.
-
sd
public double sd()Description copied from interface:DistributionReturns the standard deviation of distribution.- Specified by:
sdin interfaceDistribution- Returns:
- The standard deviation.
-
entropy
public double entropy()Description copied from interface:DistributionReturns Shannon entropy of the distribution.- Specified by:
entropyin interfaceDistribution- Returns:
- Shannon entropy.
-
toString
-
rand
public double rand()Only support shape parameter k of integer.- Specified by:
randin interfaceDistribution- Returns:
- a random number.
-
p
public double p(double x) Description copied from interface:DistributionThe probability density function for continuous distribution or probability mass function for discrete distribution at x.- Specified by:
pin interfaceDistribution- Parameters:
x- a real number.- Returns:
- the density.
-
logp
public double logp(double x) Description copied from interface:DistributionThe density at x in log scale, which may prevents the underflow problem.- Specified by:
logpin interfaceDistribution- Parameters:
x- a real number.- Returns:
- the log density.
-
cdf
public double cdf(double x) Description copied from interface:DistributionCumulative distribution function. That is the probability to the left of x.- Specified by:
cdfin interfaceDistribution- Parameters:
x- a real number.- Returns:
- the probability.
-
quantile
public double quantile(double p) Description copied from interface:DistributionThe quantile, the probability to the left of quantile is p. It is actually the inverse of cdf.- Specified by:
quantilein interfaceDistribution- Parameters:
p- the probability.- Returns:
- the quantile.
-
M
Description copied from interface:ExponentialFamilyThe M step in the EM algorithm, which depends on the specific distribution.- Specified by:
Min interfaceExponentialFamily- Parameters:
x- the input data for estimationposteriori- the posteriori probability.- Returns:
- the (unnormalized) weight of this distribution in the mixture.
-