[net.math.stat] Random vector generation, given the joint distribution function

naba@eneevax.UUCP (Nabajyoti Barkakati) (12/06/85)

Replace this line with your message

I need to generate some random vectors, given the joint distribution function
of the components. I am familiar with the usual scalar random number
generators, but haven't been able to find anything on the multivariate case.

I would appreciate it very much if anyone on the net could help me with some
references on this topic, preferably one with algorithms to generate random
vectors.

Thanks.
                        -- Naba Barkakati
          UUCP: {seismo, allegra}!umcp-cs!eneevax!naba
        BITNET: naba%eneevax.ee.umd.edu@UMD2
          ARPA: naba@eneevax.ee.umd.edu   

eeb@ukc.UUCP (E.E.Bassett) (12/11/85)

The simplest method (in principle, at least) is to work with marginal
and conditional distributions. So, if you want to simulate the joint
distribution of X,Y and Z, first calculate the marginal distribution
of one of them, X say, and simulate an observation x. You can then
calculate the conditional distribution of Y given X=x, and simulate
a value y from that; then find the conditional distribution of Z
given X=x, Y=y, and simulate z from that. The problem of simulating
several random variables simultaneously is thus reduced to sequential
simulation of individual (scalar) r.vs.

Whether this method is efficient in practice depends, obviously, on
the mathematical form of the marginal and conditional distributions
of X, Y and Z. Some joint distributions (e.g. multivariate normal)
come out rather easily this way. 

An alternative possibility would be to think in terms of a rejection
method. One can obviously always do this for joint distributions of
random variables with finite range (at least, as long as there's no
singularity), but I'd expect the method to be generally pretty
inefficient.

As in so many cases, the best method depends on the detailed mathematical
specification of the distributions concerned, which we weren't given!

         Eryl Bassett
         University of Kent
         Canterbury, U.K.