SSJ
3.3.1
Stochastic Simulation in Java
|
This class implements random variate generators for a mixture distribution. More...
Public Member Functions | |
MixtureGen (RandomStream s, Distribution[] dists, double[] weights) | |
Creates a new mixture distribution generator defined by the given Distribution and weights, using the random stream s . More... | |
double | nextDouble () |
Mixture distribution parameters | |
Distribution | getDistribution () |
This method is not supported, it will throw an UnsupportedOperationException . More... | |
Distribution [] | getDistributions () |
Returns the distributions of this mixture. More... | |
double [] | getWeights () |
Returns the probability associated with each distribution of the mixture. More... | |
Public Member Functions inherited from RandomVariateGen | |
RandomVariateGen (RandomStream s, Distribution dist) | |
Creates a new random variate generator from the distribution dist , using stream s . More... | |
double | nextDouble () |
Generates a random number from the continuous distribution contained in this object. More... | |
void | nextArrayOfDouble (double[] v, int start, int n) |
Generates n random numbers from the continuous distribution contained in this object. More... | |
double [] | nextArrayOfDouble (int n) |
Generates n random numbers from the continuous distribution contained in this object, and returns them in a new array of size n . More... | |
RandomStream | getStream () |
Returns the umontreal.ssj.rng.RandomStream used by this generator. More... | |
void | setStream (RandomStream stream) |
Sets the umontreal.ssj.rng.RandomStream used by this generator to stream . | |
Distribution | getDistribution () |
Returns the umontreal.ssj.probdist.Distribution used by this generator. More... | |
String | toString () |
Returns a String containing information about the current generator. | |
Protected Attributes | |
Distribution [] | dists |
The different distributions that compose this mixture. | |
DiscreteDistribution | weightsDist |
The discrete distribution that is used to select randomly a distribution from the mixture when generating a random variate. | |
double [] | weights |
The probability of each distribution that compose this mixture, see variable dists . | |
Protected Attributes inherited from RandomVariateGen | |
RandomStream | stream |
Distribution | dist |
This class implements random variate generators for a mixture distribution.
Consider a random variable \(X\) defined by a mixture of \(k\) distributions. Let \(f_i(x)\) be the density or probability mass function of the \(i\)-th distribution with associated weight \(w_i \in [0, 1]\). The sum of the \(k\) weights must equal to 1, i.e., \(\sum_{i=1}^k w_i = 1\).
The density or probability mass function \(f(x)\) of \(X\) is then
\[ f(x) = \sum_{i=1}^k f_i(x). \]
In the class constructor, the user must give an array of size \(k\) of umontreal.ssj.probdist.Distribution and an array of double
of same length for the associated weights \(w_i\). To generate a random variate, the implementation of this class will first select randomly (and proportionally to the weights \(w_i\)) a distribution \(D_i\) from the mixture. Then, it will generate a random variate by inversion by calling the method Distribution.inverseF
.
MixtureGen | ( | RandomStream | s, |
Distribution [] | dists, | ||
double [] | weights | ||
) |
Creates a new mixture distribution generator defined by the given Distribution and weights, using the random stream s
.
The list of distributions and associated weights are given by arguments dists
and weights
. The weights must be non-negative, and they must sum to 1.
s | the random stream that will be used to generate the random variates |
dists | the distributions that define the mixture |
weights | the probability to select each distribution in the mixture |
Distribution getDistribution | ( | ) |
This method is not supported, it will throw an UnsupportedOperationException
.
Use method getDistributions instead.
UnsupportedOperationException | this method is not supported |
Distribution [] getDistributions | ( | ) |
Returns the distributions of this mixture.
See also getWeights .
double [] getWeights | ( | ) |
Returns the probability associated with each distribution of the mixture.
See also getDistributions .