0
$\begingroup$

Say I want to create a multivariate distribution that perhaps, as an example, looks something like this.

f(x1,x2,x3)=f1(x1)*f2(x2)*f3(x3)*InverseStandardNormal[F1(x1)]*...

Obviously the function I am working on doesn't quite look like this but I hope you get the picture. It is a multivariate joint distribution that relies on individual marginal distributions, cumulative distributions, as well as other scaling factors.

I am not sure how to achieve this despite spending over a week on it already. Please help!

Well. What I have done so far is the first bit of it (with the product of marginals)

ProductDistribution[
   BetaDistribution[1,2],BetaDistribution[2,2],BetaDistribution[3,1]
]

**Edit: ** The formula I want to create is number 8 in this paper http://library.wolfram.com/infocenter/Conferences/4312/coleman.nb?file_id=3546

Here is my attempt so far:

    densities = ProductDistribution[BetaDistribution[\[Alpha]Vector[[1]], \[Beta]Vector[[1]]], BetaDistribution[\[Alpha]Vector[[2]], \[Beta]Vector[[2]]], BetaDistribution[\[Alpha]Vector[[3]], \[Beta]Vector[[3]]], BetaDistribution[\[Alpha]Vector[[4]], \[Beta]Vector[[4]]], BetaDistribution[\[Alpha]Vector[[5]], \[Beta]Vector[[5]]], BetaDistribution[\[Alpha]Vector[[6]], \[Beta]Vector[[6]]], BetaDistribution[\[Alpha]Vector[[7]], \[Beta]Vector[[7]]], BetaDistribution[\[Alpha]Vector[[8]], \[Beta]Vector[[8]]]];
y = {Quantile[NormalDistribution[0, 1], CDF[BetaDistribution[\[Alpha]Vector[[1]], \[Beta]Vector[[1]]], a]], Quantile[NormalDistribution[0, 1], CDF[BetaDistribution[\[Alpha]Vector[[2]], \[Beta]Vector[[2]]], b]], Quantile[NormalDistribution[0, 1],CDF[BetaDistribution[\[Alpha]Vector[[3]], \[Beta]Vector[[3]]], 
     c]], Quantile[NormalDistribution[0, 1], 
    CDF[BetaDistribution[\[Alpha]Vector[[4]], \[Beta]Vector[[4]]], 
     d]], 
   Quantile[NormalDistribution[0, 1], 
    CDF[BetaDistribution[\[Alpha]Vector[[5]], \[Beta]Vector[[5]]], 
     e]], Quantile[NormalDistribution[0, 1], 
    CDF[BetaDistribution[\[Alpha]Vector[[6]], \[Beta]Vector[[6]]], 
     f]], Quantile[NormalDistribution[0, 1], 
    CDF[BetaDistribution[\[Alpha]Vector[[7]], \[Beta]Vector[[7]]], 
     g]], Quantile[NormalDistribution[0, 1], 
    CDF[BetaDistribution[\[Alpha]Vector[[8]], \[Beta]Vector[[8]]], 
     h]]};
copula = Exp[(-y.(Inverse[exampleCorr] - 
          IdentityMatrix[Dimensions[exampleCorr][[1]]]).y)/2.]/
   Sqrt[Det[exampleCorr]];

The plan for me is to generate a random vector from that distribution.

$\endgroup$
  • 1
    $\begingroup$ Maybe you should try to create your own distribution in 1-D first... show what you have done, and how you want to generalize it to 3-D.... $\endgroup$ – bill s Dec 3 '14 at 4:06
  • $\begingroup$ i have been able to do the first little bit. However, I now need to take the inverse standard normal of the cumulative distribution of one of the variables. I have no idea as to how to do this and be able to combine this with the product distribution $\endgroup$ – Jim Dec 3 '14 at 4:17
  • $\begingroup$ Have you loooked here: reference.wolfram.com/language/ref/… $\endgroup$ – bill s Dec 3 '14 at 4:20
  • $\begingroup$ I tried something like PDF[InverseGaussianDistribution[0, 1],CDF[BetaDistribution[1,2],x]. However, there is an error and I have deduced it due to being the fact that I have a mean of 0. $\endgroup$ – Jim Dec 3 '14 at 4:34
  • $\begingroup$ Did you try to follow the examples on the help page? (The reason I ask is because the syntax does not look right in your comment above). The InverseGaussian cannot have a mean of zero, as stated clearly in the "Details" section. $\endgroup$ – bill s Dec 3 '14 at 14:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.