Package org.apache.commons.math3.distribution

# Class MixtureMultivariateRealDistribution<T extends MultivariateRealDistribution>

java.lang.Object
org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution
org.apache.commons.math3.distribution.MixtureMultivariateRealDistribution<T>

Type Parameters:
  `T` - Type of the mixture components.

All Implemented Interfaces:
  `MultivariateRealDistribution`

Direct Known Subclasses:
  `MixtureMultivariateNormalDistribution`

public class MixtureMultivariateRealDistribution<T extends MultivariateRealDistribution> extends AbstractMultivariateRealDistribution
Class for representing mixture model distributions.

Since:
  3.1

## Field Summary

### Fields inherited from class org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution

`random`

## Constructor Summary

Constructors
Constructor
Description
`MixtureMultivariateRealDistribution(List<Pair<Double,T>> components)`
Creates a mixture model from a list of distributions and their associated weights.
`MixtureMultivariateRealDistribution(RandomGenerator rng, List<Pair<Double,T>> components)`
Creates a mixture model from a list of distributions and their associated weights.

## Method Summary

Modifier and Type
Method
Description
`double`
`density(double[] values)`
Returns the probability density function (PDF) of this distribution evaluated at the specified point `x`.
`List<Pair<Double,T>>`
`getComponents()`
Gets the distributions that make up the mixture model.
`void`
`reseedRandomGenerator(long seed)`
Reseeds the random generator used to generate samples.
`double[]`
`sample()`
Generates a random value vector sampled from this distribution.

### Methods inherited from class org.apache.commons.math3.distribution.AbstractMultivariateRealDistribution

`getDimension, sample`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### MixtureMultivariateRealDistribution

public MixtureMultivariateRealDistribution(List<Pair<Double,T>> components)
Creates a mixture model from a list of distributions and their associated weights.

Note: this constructor will implicitly create an instance of `Well19937c` as random generator to be used for sampling only (see `sample()` and `AbstractMultivariateRealDistribution.sample(int)`). In case no sampling is needed for the created distribution, it is advised to pass `null` as random generator via the appropriate constructors to avoid the additional initialisation overhead.

Parameters:
  `components` - List of (weight, distribution) pairs from which to sample.

### MixtureMultivariateRealDistribution

public MixtureMultivariateRealDistribution(RandomGenerator rng, List<Pair<Double,T>> components)
Creates a mixture model from a list of distributions and their associated weights.

Parameters:
  `rng` - Random number generator.
  `components` - Distributions from which to sample.
Throws:
  `NotPositiveException` - if any of the weights is negative.
  `DimensionMismatchException` - if not all components have the same number of variables.

## Method Details

### density

public double density(double[] values)
Returns the probability density function (PDF) of this distribution evaluated at the specified point `x`. In general, the PDF is the derivative of the cumulative distribution function. If the derivative does not exist at `x`, then an appropriate replacement should be returned, e.g. `Double.POSITIVE_INFINITY`, `Double.NaN`, or the limit inferior or limit superior of the difference quotient.

Parameters:
  `values` - Point at which the PDF is evaluated.
Returns:
  the value of the probability density function at point `x`.

### sample

public double[] sample()
Generates a random value vector sampled from this distribution.

Specified by:
  `sample` in interface `MultivariateRealDistribution`
Specified by:
  `sample` in class `AbstractMultivariateRealDistribution`
Returns:
  a random value vector.

### reseedRandomGenerator

public void reseedRandomGenerator(long seed)
Reseeds the random generator used to generate samples.

Specified by:
  `reseedRandomGenerator` in interface `MultivariateRealDistribution`
Overrides:
  `reseedRandomGenerator` in class `AbstractMultivariateRealDistribution`
Parameters:
  `seed` - Seed with which to initialize the random number generator.

### getComponents

public List<Pair<Double,T>> getComponents()
Gets the distributions that make up the mixture model.

Returns:
  the component distributions and associated weights.