[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
"FEIVESON, ALAN H. (AL) (JSC-SK) (NASA)" <alan.h.feiveson@nasa.gov> |

To |
"'statalist@hsphsun2.harvard.edu'" <statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: RE: Multivariate "mixed" distribution |

Date |
Tue, 2 Nov 2004 08:56:40 -0600 |

This method is also known as the "copula" method of generation of dependent random variables. The term "copula" refers to the set of dependent uniforms that you get after Step One. Al Feiveson -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu]On Behalf Of n p Sent: Tuesday, November 02, 2004 4:46 AM To: statalist@hsphsun2.harvard.edu Subject: Re: st: RE: Multivariate "mixed" distribution Yesterday I asked for advice on generating a sample from a multi(5)variate distribution with a given covariance structure with 4 of the 5 variables having a normal distribution and the 5th having a Gumbel distribution. Roy W. Haas gave me the following solution: > You can always use the following two-step process. > Let X be the (standard) normal variable that you > want to change the marginal distribution of. Then > U=F(X), where F() is the standard normal cdf, has a > uniform distribution. Then Y=G*(U) has the > cumulative distribution G(), where G* is the inverse > function of G. You may have to approximate the > covariance between Y and the other marginals by a > series expansion or similar device, but you now have > the desired marginal distribution. Here's my interpretation of Roy's advice ("sigma" is the target var-cov matrix) : *****START oF CODE***************** mat corsigma=corr(sigma) drawnorm z1 z2 z3 z4 z5,corr(corsigma) gen u5=norm(z5) /*transformation to uniform*/ gen g=log(log(1/(1-u5))) /*transformation to Gumbel with parameters a=0 and b=1*/ mat diagsigma=vecdiag(sigma) gen a0i=z1*sqrt(diagsigma[1,1]) gen a1i=z2*sqrt(diagsigma[1,2]) gen b0i=z3*sqrt(diagsigma[1,3]) gen b1i=z4*sqrt(diagsigma[1,4]) gen c0i=g*sqrt(diagsigma[1,5])/sqrt(1.645) /* 1.645 is the variance of a Gumbel(0,1)*/ **************END OF CODE*********************** This method seems to work OK. If Roy or someone else wants to comment on this is wellcome. Thanks again Roy. Nikos Pantazis Biostatistician __________________________________ Do you Yahoo!? Check out the new Yahoo! Front Page. www.yahoo.com * * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

- Prev by Date:
**st: bcoeff** - Next by Date:
**RE: st: RRR with CI from logit model** - Previous by thread:
**Re: st: RE: Multivariate "mixed" distribution** - Next by thread:
**st: Paradoxical RRR with logit and auto.dta** - Index(es):

© Copyright 1996–2016 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |