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.