[R] princomp with not non-negative definite correlation matrix

Thomas Lumley tlumley at u.washington.edu
Mon Apr 14 15:50:44 CEST 2003


On Thu, 10 Apr 2003 tvr at stanford.edu wrote:

> $ R --version
> R 1.6.1 (2002-11-01).
>
> So I would like to perform principal components analysis on a 16X16
> correlation matrix, [princomp(cov.mat=x) where x is correlation matrix],
> the problem is princomp complains that it is not non-negative definite.
>
> I called eigen() on the correlation matrix and found that one of the
> eigenvectors is close to zero & negative (-0.001832311). Is there any
> way to work around this problem. A constraint: I only have the
> correlation matrix, not the data that produced it.

If you are confident the problem is due to rounding (or perhaps to small
amounts of missing data) you could set the smallest eigenvalue to zero.

However, in revising an introductory biostatistics text recently I have
found two correlation matrices with negative eigenvalues, both of which
were actually data entry errors.

	-thomas
Thomas Lumley			Asst. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle



More information about the R-help mailing list