[R] how do I make a correlation matrix positive definite?

Jeremy Miles jeremy.miles at gmail.com
Fri Oct 22 00:54:35 CEST 2010


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 <demirtas at 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 at 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



More information about the R-help mailing list