I know.

Let me re-phrase the question: How do I convert a non-positive definite correlation matrix to a positive-definite correlation matrix in R? I don't think cov2cor is relevant here.

Example:

 print(corr.mat)
     [,1]  [,2]  [,3]  [,4]
[1,]  1.00 -0.95 -0.28 -0.64
[2,] -0.95  1.00 -0.81 -0.38
[3,] -0.28 -0.81  1.00 -0.11
[4,] -0.64 -0.38 -0.11  1.00
is.positive.definite(corr.mat)
[1] FALSE
make.positive.definite(corr.mat)
          [,1]       [,2]       [,3]       [,4]
[1,]  1.2105898 -0.7221551 -0.1246443 -0.4971036
[2,] -0.7221551  1.2465138 -0.6419150 -0.2253951
[3,] -0.1246443 -0.6419150  1.1146085 -0.0045829
[4,] -0.4971036 -0.2253951 -0.0045829  1.0969628



----- Original Message -----
You could use cov2cor() to convert from covariance matrix to
correlation matrix.  If the correlation is >1, the matrix won't be
positive definite, so you can restandardize the matrix to get a pos
def correlation matrix.

Jeremy


On 21 October 2010 15:50, HAKAN DEMIRTAS <demir...@uic.edu> wrote:
Hi,

If a matrix is not positive definite, make.positive.definite() function in corpcor library finds the nearest positive definite matrix by the method proposed by Higham (1988).

However, when I deal with correlation matrices whose diagonals have to be 1 by definition, how do I do it? The above-mentioned function seem to mess up the diagonal entries. [I haven't seen this complication, but obviously all entries must remain in (-1,1) range after conversion.]

Any R tools to handle this?

I'd appreciate any help.

Hakan Demirtas


[[alternative HTML version deleted]]

______________________________________________
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.




--
Jeremy Miles
Psychology Research Methods Wiki: www.researchmethodsinpsychology.com

______________________________________________
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.

Reply via email to