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
______________________________________________
[email protected] 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.