dpoMatrix-class
Positive Semi-definite Dense (Packed | Non-packed) Numeric Matrices
Description
-
The
"dpoMatrix"
class is the class of positive-semidefinite symmetric matrices in nonpacked storage. -
The
"dppMatrix"
class is the same except in packed storage. Only the upper triangle or the lower triangle is required to be available. -
The
"corMatrix"
class of correlation matrices extends"dpoMatrix"
with a slotsd
, which allows to restore the original covariance matrix.
Objects from the Class
Objects can be created by calls of the form new("dpoMatrix", ...)
or from crossprod
applied to an "dgeMatrix"
object.
Slots
-
uplo
: -
Object of class
"character"
. Must be either "U", for upper triangular, and "L", for lower triangular. -
x
: -
Object of class
"numeric"
. The numeric values that constitute the matrix, stored in column-major order. -
Dim
: -
Object of class
"integer"
. The dimensions of the matrix which must be a two-element vector of non-negative integers. -
Dimnames
: -
inherited from class
"Matrix"
-
factors
: -
Object of class
"list"
. A named list of factorizations that have been computed for the matrix. -
sd
: -
(for
"corMatrix"
) anumeric
vector of lengthn
containing the (original) sqrt(var(.)) entries which allow reconstruction of a covariance matrix from the correlation matrix.
Extends
Class "dsyMatrix"
, directly.
Classes "dgeMatrix"
, "symmetricMatrix"
, and many more by class "dsyMatrix"
.
Methods
- chol
-
signature(x = "dpoMatrix")
: Returns (and stores) the Cholesky decomposition ofx
, seechol
. - determinant
-
signature(x = "dpoMatrix")
: Returns thedeterminant
ofx
, viachol(x)
, see above. - rcond
-
signature(x = "dpoMatrix", norm = "character")
: Returns (and stores) the reciprocal of the condition number ofx
. Thenorm
can be"O"
for the one-norm (the default) or"I"
for the infinity-norm. For symmetric matrices the result does not depend on the norm. - solve
-
signature(a = "dpoMatrix", b = "....")
, and
- solve
-
signature(a = "dppMatrix", b = "....")
work via the Cholesky composition, see also the Matrix solve-methods
.
- Arith
-
signature(e1 = "dpoMatrix", e2 = "numeric")
(and quite a few other signatures): The result of (“elementwise” defined) arithmetic operations is typically not positive-definite anymore. The only exceptions, currently, are multiplications, divisions or additions with positivelength(.) == 1
numbers (orlogical
s).
See Also
Classes dsyMatrix
and dgeMatrix
; further, Matrix
, rcond
, chol
, solve
, crossprod
.
Examples
h6 <- Hilbert(6) rcond(h6) str(h6) h6 * 27720 # is ``integer'' solve(h6) str(hp6 <- as(h6, "dppMatrix")) ### Note that as(*, "corMatrix") *scales* the matrix (ch6 <- as(h6, "corMatrix")) stopifnot(all.equal(h6 * 27720, round(27720 * h6), tolerance = 1e-14), all.equal(ch6@sd^(-2), 2*(1:6)-1, tolerance= 1e-12)) chch <- chol(ch6) stopifnot(identical(chch, ch6@factors$Cholesky), all(abs(crossprod(chch) - ch6) < 1e-10))
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.