Not sure if this is sufficient but nearcor in the sfsmisc package will find the nearest correlation matrix to a given matrix.
On Thu, Jun 26, 2008 at 12:11 PM, Mizanur Khondoker <[EMAIL PROTECTED]> wrote: > Dear list, > > I am trying to use the 'mvrnorm' function from the MASS package for > simulating multivariate Gaussian data with given covariance matrix. > The diagonal elements of my covariance matrix should be the same, > i.e., all variables have the same marginal variance. Also all > correlations between all pair of variables should be identical, but > could be any value in [-1,1]. The problem I am having is that the > matrix I create is not always positive definite (and hence mvrnorm > fails). > > Is there any simple way of constructing covariance matrix of the above > structure (equal variance, same pairwise correlation from [-1, 1]) > that will always be positive definite? > I have noticed that covraince matrices created using the following COV > function are positive definite for -0.5 < r <1. However, for r < > -0.5, the matrix is not positive definite. > Does anyone have any idea why this is the case? For my simualtion, I > need to generate multivariate data for the whole range of r, [-1, 1] > for a give value of sd. > > Any help/ suggestion would be greatly appreciated. > > Examples > ######## > COV<-function (p = 3, sd = 1, r= 0.5){ > cov <- diag(sd^2, ncol=p, nrow=p) > for (i in 1:p) { > for (j in 1:p) { > if (i != j) { > cov[i, j] <- r * sd*sd > } > } > } > cov > } > >> library(MASS) >> ### Simualte multivarite gaussin data (works OK) >> Sigma<-COV(p = 3, sd = 2, r= 0.5) >> mu<-1:3 >> mvrnorm(5, mu=mu, Sigma=Sigma) > [,1] [,2] [,3] > [1,] 1.2979984 1.843248 4.460891 > [2,] 2.1061054 1.457201 3.774833 > [3,] 2.1578538 2.761939 4.589977 > [4,] 0.8775056 4.240710 2.203712 > [5,] 0.2698180 2.075759 2.869573 >> >> ### Simualte multivarite gaussin data ( gives Error) >> Sigma<-COV(p = 3, sd = 2, r= -0.6) >> mu<-1:3 >> mvrnorm(5, mu=mu, Sigma=Sigma) > Error in mvrnorm(5, mu = mu, Sigma = Sigma) : > 'Sigma' is not positive definite > > -- > Mizanur Khondoker > Division of Pathway Medicine (DPM) > The University of Edinburgh Medical School > The Chancellor's Building > 49 Little France Crescent > Edinburgh EH16 4SB > United Kingdom > > Tel: +44 (0) 131 242 6287 > Fax: +44 (0) 131 242 6244 > http://www.pathwaymedicine.ed.ac.uk/ > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.