[R] positive semi-definite matrix
Ravi Varadhan
rvaradhan at jhmi.edu
Fri Jul 21 17:33:23 CEST 2006
There is a paper by N.J. Higham (SIAM J Matrix Anal, 1998) on a modified
cholesky decomposition of symmetric and not necessarily positive definite
matrix (say, A), with an important goal of producing a "small-normed"
perturbation of A (say, delA), that makes (A + delA) positive definite.
http://epubs.siam.org/sam-bin/dbq/article/30289
There is also an algorithm in Gill, Murray and Wright's text - Practical
Optimization (section 4.4.2).
These may be relevant to your problem. I am not sure if these algorithms
have been implemented in R, for example, in the "matrix" library.
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 Duncan Murdoch
> Sent: Friday, July 21, 2006 9:45 AM
> To: roger bos
> Cc: RHelp
> Subject: Re: [R] positive semi-definite matrix
>
> On 7/21/2006 8:59 AM, roger bos wrote:
> > I have a covariance matrix that is not positive semi-definite matrix and
> I
> > need it to be via some sort of adjustment. Is there any R routine or
> > package to help me do this?
>
> I think you need to be more specific about what have and what you want,
> but if the matrix is symmetric and nearly positive semi-definite (but
> not exactly because of rounding error), you might try something like
>
> fixit <- function(A) {
> eig <- eigen(A, symmetric = TRUE)
> eig$values <- pmax(0, eig$values)
> return(eig$vectors %*% diag(eig$values) %*% t(eig$vectors))
> }
>
> Rounding error means this is not guaranteed to be positive
> semi-definite, but it will be very close.
>
> Duncan Murdoch
>
> ______________________________________________
> 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