smile.stat.distribution
Class MultivariateGaussianDistribution
- java.lang.Object
-
- smile.stat.distribution.AbstractMultivariateDistribution
-
- smile.stat.distribution.MultivariateGaussianDistribution
-
- All Implemented Interfaces:
- MultivariateDistribution, MultivariateExponentialFamily
public class MultivariateGaussianDistribution extends AbstractMultivariateDistribution implements MultivariateExponentialFamily
Multivariate Gaussian distribution.- See Also:
GaussianDistribution
-
-
Constructor Summary
Constructors Constructor and Description MultivariateGaussianDistribution(double[][] data)Constructor.MultivariateGaussianDistribution(double[][] data, boolean diagonal)Constructor.MultivariateGaussianDistribution(double[] mean, double var)Constructor.MultivariateGaussianDistribution(double[] mean, double[] var)Constructor.MultivariateGaussianDistribution(double[] mean, double[][] cov)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doublecdf(double[] x)Algorithm from Alan Genz (1992) Numerical Computation of Multivariate Normal Probabilities, Journal of Computational and Graphical Statistics, pp.double[][]cov()The covariance matrix of distribution.doubleentropy()Shannon entropy of the distribution.booleanisDiagonal()Returns true if the covariance matrix is diagonal.doublelogp(double[] x)The density at x in log scale, which may prevents the underflow problem.MultivariateMixture.ComponentM(double[][] x, double[] posteriori)The M step in the EM algorithm, which depends the specific distribution.double[]mean()The mean vector of distribution.intnpara()The number of parameters of the distribution.doublep(double[] x)The probability density function for continuous distribution or probability mass function for discrete distribution at x.double[]rand()Generate a random multivariate Gaussian sample.doublescatter()Returns the scatter of distribution, which is defined as |Σ|.java.lang.StringtoString()-
Methods inherited from class smile.stat.distribution.AbstractMultivariateDistribution
likelihood, logLikelihood
-
-
-
-
Constructor Detail
-
MultivariateGaussianDistribution
public MultivariateGaussianDistribution(double[] mean, double var)Constructor. The distribution will have a diagonal covariance matrix of the same variance.- Parameters:
mean- mean vector.var- variance.
-
MultivariateGaussianDistribution
public MultivariateGaussianDistribution(double[] mean, double[] var)Constructor. The distribution will have a diagonal covariance matrix. Each element has different variance.- Parameters:
mean- mean vector.var- variance vector.
-
MultivariateGaussianDistribution
public MultivariateGaussianDistribution(double[] mean, double[][] cov)Constructor.- Parameters:
mean- mean vector.cov- covariance matrix.
-
MultivariateGaussianDistribution
public MultivariateGaussianDistribution(double[][] data)
Constructor. Mean and covariance will be estimated from the data by MLE.- Parameters:
data- the training data.
-
MultivariateGaussianDistribution
public MultivariateGaussianDistribution(double[][] data, boolean diagonal)Constructor. Mean and covariance will be estimated from the data by MLE.- Parameters:
data- the training data.diagonal- true if covariance matrix is diagonal.
-
-
Method Detail
-
isDiagonal
public boolean isDiagonal()
Returns true if the covariance matrix is diagonal.- Returns:
- true if the covariance matrix is diagonal
-
npara
public int npara()
Description copied from interface:MultivariateDistributionThe number of parameters of the distribution.- Specified by:
nparain interfaceMultivariateDistribution
-
entropy
public double entropy()
Description copied from interface:MultivariateDistributionShannon entropy of the distribution.- Specified by:
entropyin interfaceMultivariateDistribution
-
mean
public double[] mean()
Description copied from interface:MultivariateDistributionThe mean vector of distribution.- Specified by:
meanin interfaceMultivariateDistribution
-
cov
public double[][] cov()
Description copied from interface:MultivariateDistributionThe covariance matrix of distribution.- Specified by:
covin interfaceMultivariateDistribution
-
scatter
public double scatter()
Returns the scatter of distribution, which is defined as |Σ|.
-
logp
public double logp(double[] x)
Description copied from interface:MultivariateDistributionThe density at x in log scale, which may prevents the underflow problem.- Specified by:
logpin interfaceMultivariateDistribution
-
p
public double p(double[] x)
Description copied from interface:MultivariateDistributionThe probability density function for continuous distribution or probability mass function for discrete distribution at x.- Specified by:
pin interfaceMultivariateDistribution
-
cdf
public double cdf(double[] x)
Algorithm from Alan Genz (1992) Numerical Computation of Multivariate Normal Probabilities, Journal of Computational and Graphical Statistics, pp. 141-149. The difference between returned value and the true value of the CDF is less than 0.001 in 99.9% time. The maximum number of iterations is set to 10000.- Specified by:
cdfin interfaceMultivariateDistribution
-
rand
public double[] rand()
Generate a random multivariate Gaussian sample.
-
M
public MultivariateMixture.Component M(double[][] x, double[] posteriori)
Description copied from interface:MultivariateExponentialFamilyThe M step in the EM algorithm, which depends the specific distribution.- Specified by:
Min interfaceMultivariateExponentialFamily- Parameters:
x- the input data for estimationposteriori- the posteriori probability.- Returns:
- the (unnormalized) weight of this distribution in the mixture.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-
DataMelt 3.0 © DataMelt by jWork.ORG