[R] A problem with chol() function

Prof Brian Ripley ripley at stats.ox.ac.uk
Sun Oct 23 12:06:50 CEST 2011


On Sun, 23 Oct 2011, Ron Michael wrote:

> I think I am missing something with the chol() function. Here is my calculation:
>  
>> mat
>      [,1] [,2] [,3] [,4] [,5]
> [1,]    1    3    0    0    0
> [2,]    0    1    0    0    0
> [3,]    0    0    1    0    0
> [4,]    0    0    0    1    0
> [5,]    0    0    0    0    1
>> eigen(mat)
> $values
> [1] 1 1 1 1 1
> $vectors
>      [,1]          [,2] [,3] [,4] [,5]
> [1,]    1 -1.000000e+00    0    0    0
> [2,]    0  7.401487e-17    0    0    0
> [3,]    0  0.000000e+00    1    0    0
> [4,]    0  0.000000e+00    0    1    0
> [5,]    0  0.000000e+00    0    0    1
>> chol(mat)
> Error in chol.default(mat) :
>   the leading minor of order 2 is not positive definite
>
> As per the eigen values my matrix is PD (as all eigen values are 
> positive). Then why still I can not get Cholesky factor of my 
> matrix? Can somebody point mw where I am missing?   Thanks and 
> regards,

Reading the help page:

      Compute the Choleski factorization of a real symmetric
                                                   ^^^^^^^^^
      positive-definite square matrix.

....

      Note that only the upper triangular part of ‘x’ is used, so that
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

A <- diag(5)
A[1,2] <- A[2,1] <- 3
eigen(A)$values
[1]  4  1  1  1 -2



-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


More information about the R-help mailing list