st: RE: RE: Drawing a (positive-definite) correlation matrix

 From "Feiveson, Alan H. (JSC-SK311)" To Subject st: RE: RE: Drawing a (positive-definite) correlation matrix Date Mon, 15 May 2006 10:06:37 -0500

```Daniel - This may be of some help - Here's a simple program to generate
a random sample covariance matrix for a specified sample size whose
population covariance is specified by the user. Even if the population
matrix is the identity and you make the sample size the same as the
dimension of the matrix, you will get a positive definite matrix with
plenty of high correlations.

AL Feiveson

program define gencov
version 7.0
args C S N

/*
generates a sample covariance matrix S based on N observations where
true underlying covariance matrix is C
*/

local p=rowsof(`C')
tempname B
matrix `B'=cholesky(`C')
preserve
qui drop _all
qui set obs `N'
forv i=1(1)`p' {
tempvar x`i'
qui zor `x`i''
}
qui matrix accum `S'=`x'*,noconstant
qui matrix `S'=(1/(`N'-1))*`B'*`S'*`B''
restore
end

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Nick Cox
Sent: Monday, May 15, 2006 9:17 AM
To: statalist@hsphsun2.harvard.edu
Subject: st: RE: Drawing a (positive-definite) correlation matrix

If all you care about is the average
correlation, then given that all the
correlations along the principal
diagonal must be 1, all the others
could be just that average multiplied
by whatever constant yields the right

If not, you need a more precise specification.

Nick
n.j.cox@durham.ac.uk

Daniel Hoechle

> I would like to perform a Monte Carlo simulation with correlated,
> normally distributed data. It seems to be tempting to use Stata's
> -drawnorm- command. However, this is not possible because I do not yet

> have a correlation matrix. Does anyone know how to generate a positive
> (semi-) definite random correlation matrix with average correlation
> avg_corr=x in Stata?
>
> Or are there other ways to produce multivariate normal random numbers
> with average correlation between the subjects/variables equal to x
> (x!=0)?

*
*   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/
```