[R] nearest correlation to polychoric

Ravi Varadhan rvaradhan at jhmi.edu
Fri Jul 13 16:52:36 CEST 2007


Martin,

I sent you the Matlab code for this which I had obtained from Nich Higham. 

Cheng, Sheung Hun and Higham, Nick (1998)
  A Modified Cholesky Algorithm Based on a Symmetric Indefinite
Factorization;
  \emph{SIAM J. Matrix Anal.\ Appl.}, \bold{19}, 1097--1110.

Do you remember?

Ravi.

----------------------------------------------------------------------------
-------

Ravi Varadhan, Ph.D.

Assistant Professor, The Center on Aging and Health

Division of Geriatric Medicine and Gerontology 

Johns Hopkins University

Ph: (410) 502-2619

Fax: (410) 614-9625

Email: rvaradhan at jhmi.edu

Webpage:  http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html

 

----------------------------------------------------------------------------
--------

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Martin Maechler
Sent: Friday, July 13, 2007 10:29 AM
To: Dimitris Rizopoulos
Cc: "Jens Oehlschlägel"; r-help at stat.math.ethz.ch
Subject: Re: [R] nearest correlation to polychoric

>>>>> "DR" == Dimitris Rizopoulos <dimitris.rizopoulos at med.kuleuven.be>
>>>>>     on Fri, 13 Jul 2007 14:43:08 +0200 writes:

    DR> you could also have a look at function posdefify() from
    DR> package `sfsmisc'.

    DR> I hope it helps.

Yes, thanks, Dimitris; note that my posdefify() function uses a
pretty arbitrary "fudge" value for posdefification, namely
      eps.ev = 1e-07

As a matter of fact, earlier this week (in "the first
international R/Rmetrics workshop"),
I've talked to people from finance who also need that (or
something better?).

Jordi Molins Coronado (Madrid) drew my attention to an idea
he found in the book (English re-edition of French as of 1996)
Jean-Philippe Bouchaud (2000)
    Theory of Financial Risk and Derivative Pricing:
    From Statistical Physics to Risk Management

which supposedly uses theory of random matrices and
the entailing distribution of random eigenvalues in order to
find a more sensible cutoff than my 'eps.ev' default of 1e-7.
Unfortunately that book is checked out from our library and I
can't have a look.   Googling and Wikipedia seem to indicate to
me that most of the random matrix theory does not directly apply
here, since I'm really interested in the spectrum of X'X where X
is a de-meaned n x p random matrix.


OTOH, help(posdefify) already mentions more sophisticated
approaches to the problem, the one I (as I vaguely remember)
should be made available being 

  Cheng, Sheung Hun and Higham, Nick (1998)
  A Modified Cholesky Algorithm Based on a Symmetric Indefinite
Factorization;
  \emph{SIAM J. Matrix Anal.\ Appl.}, \bold{19}, 1097--1110.


Jens, could you make your code (mentioned below) available to
the community, or even donate to be included as a new method of
posdefify() ?

Regards,
Martin Maechler, ETH Zurich


    DR> Best, Dimitris

    DR> ---- Dimitris Rizopoulos Ph.D. Student Biostatistical
    DR> Centre School of Public Health Catholic University of
    DR> Leuven

    DR> Address: Kapucijnenvoer 35, Leuven, Belgium Tel:
    DR> +32/(0)16/336899 Fax: +32/(0)16/337015 Web:
    DR> http://med.kuleuven.be/biostat/
    DR> http://www.student.kuleuven.be/~m0390867/dimitris.htm


    DR> ----- Original Message ----- From: ""Jens Oehlschlägel""
    DR> <oehl_list at gmx.de> To: <r-help at stat.math.ethz.ch> Sent:
    DR> Friday, July 13, 2007 2:25 PM Subject: [R] nearest
    DR> correlation to polychoric


    DR> Dear all,

    DR> Has someone implemented in R (or any other language)

    DR> Knol DL, ten Berge JMF.  Least-squares approximation of
    DR> an improper correlation matrix by a proper one.
    DR> Psychometrika, 1989, 54, 53-61.

    DR> or any other similar algorithm?

    DR> Best regards


    DR> Jens Oehlschlägel


    DR> Background:

    DR> I want to factanal() matrices of polychoric correlations
    DR> which have negative eigenvalue. I coded

    DR> Highham 2002 Computing the nearest correlation matrix -
    DR> a problem from finance, IMA Journal of Numerical
    DR> Analysis (2002), 22, 329-343.

    DR> which basically works but still leaves very small
    DR> negative eigenvalues which causes factanal() to fail
    DR> with

    >> factanal(cov=ncor$cor, factors=2)
    DR> Fehler in optim(start, FAfn, FAgr, method = "L-BFGS-B",
    DR> lower = lower, : L-BFGS-B benötigt endliche Werte von
    DR> 'fn' Zusätzlich: Warning message: NaNs wurden erzeugt
    DR> in: log(x)
    >> version
    DR>                _ platform i386-pc-mingw32 arch i386 os
    DR> mingw32 system i386, mingw32 status major 2 minor 4.1
    DR> year 2006 month 12 day 18 svn rev 40228 language R
    DR> version.string R version 2.4.1 (2006-12-18)

______________________________________________
R-help at stat.math.ethz.ch 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.



More information about the R-help mailing list