is.pd {metaSEM} | R Documentation |
Test Positive Definiteness of a List of Square Matrices
Description
It tests the positive definiteness of a square matrix or a
list of square matrices. It returns TRUE
if the matrix is
positive definite. It returns FALSE
if the matrix is either
non-positive definite or not symmetric. Variables with NA
in the diagonals will be removed
before testing. It returns NA
when there are missing correlations even after deleting
the missing variables.
Usage
is.pd(x, check.aCov=FALSE, cor.analysis=TRUE, tol=1e-06)
Arguments
x |
A square matrix or a list of square matrices |
check.aCov |
If it is |
cor.analysis |
Whether the input matrix is a correlation or a
covariance matrix. It is ignored when |
tol |
Tolerance (relative to largest variance) for numerical lack
of positive-definiteness in |
Value
If the input is a matrix, it returns TRUE
, FALSE
or NA
. If the input is a list of matrices, it returns
a list of TRUE
, FALSE
or NA
.
Author(s)
Mike W.-L. Cheung <mikewlcheung@nus.edu.sg>
Examples
A <- diag(1,3)
is.pd(A)
# TRUE
B <- matrix(c(1,2,2,1), ncol=2)
is.pd(B)
# FALSE
is.pd(list(A, B))
# TRUE FALSE
C <- A
C[2,1] <- C[1,2] <- NA
is.pd(C)
# NA