Class RandomEx2
Generates a pseudorandom multivariate sequence with user defined marginal distributions.
This example uses method Random.nextGaussianCopula to generate a
multivariate sequence
GCdevt[k=0..nseq-1][j=0..nvar-1] whose marginal distributions
are user-defined and imprinted with a user-specified correlation matrix
CorrMtrxIn[i=0..nvar-1][j=0..nvar-1] and then uses method
Random.canonicalCorrelation to extract from this multivariate
random sequence a canonical correlation matrix
CorrMtrx[i=0..nvar-1][j=0..nvar-1].
This example illustrates two useful copula related procedures. The first procedure generates a random multivariate sequence with arbitrary user-defined marginal deviates whose dependence is specified by a user-defined correlation matrix. The second procedure is the inverse of the first: an arbitrary multivariate deviate input sequence is first mapped to a corresponding sequence of empirically derived variates, i.e. cumulative distribution function values representing the probability that each random variable has a value less than or equal to the input deviate. The variates are then inverted, using the inverse Normal(0,1) function, to N(0,1) deviates; and finally, a canonical covariance matrix is extracted from the multivariate N(0,1) sequence using the standard sum of products.
This example demonstrates that the nextGaussianCopula method
correctly embeds the user-defined correlation information into an arbitrary
marginal distribution sequence by extracting the canonical correlation from
these sequences and showing that they differ from the original correlation
matrix by a small relative error, which generally decreases as the number of
multivariate sequence vectors increases.
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
RandomEx2
public RandomEx2()
-
-
Method Details
-
main
- Throws:
IMSLException
-