A class representing multiple lower triangular or symmetric matrices and some methods.
ltMatrices(object, diag = FALSE, byrow = FALSE, names = TRUE)
syMatrices(object, diag = FALSE, byrow = FALSE, names = TRUE)
# S3 method for ltMatrices
as.array(x, symmetric = FALSE, ...)
# S3 method for syMatrices
as.array(x, ...)
# S3 method for ltMatrices
diagonals(x, ...)
# S3 method for syMatrices
diagonals(x, ...)
# S3 method for matrix
diagonals(x, ...)
# S3 method for integer
diagonals(x, ...)
diagonals(x) <- value
# S3 method for ltMatrices
diagonals(x) <- value
# S3 method for syMatrices
diagonals(x) <- value
# S3 method for ltMatrices
solve(a, b, transpose = FALSE, ...)
# S3 method for syMatrices
chol(x, ...)
# S3 method for chol
aperm(a, perm, ...)
# S3 method for invchol
aperm(a, perm, ...)
# S3 method for ltMatrices
aperm(a, perm, ...)
# S3 method for syMatrices
aperm(a, perm, ...)
deperma(chol = solve(invchol), permuted_chol = solve(permuted_invchol),
invchol, permuted_invchol, perm, score_schol)
# S3 method for ltMatrices
Mult(x, y, transpose = FALSE, ...)
# S3 method for syMatrices
Mult(x, y, ...)
Tcrossprod(x, diag_only = FALSE)
Crossprod(x, diag_only = FALSE)
logdet(x)
Lower_tri(x, diag = FALSE, byrow = attr(x, "byrow"))
is.ltMatrices(x)
is.syMatrices(x)
as.ltMatrices(x)
# S3 method for ltMatrices
as.ltMatrices(x)
# S3 method for syMatrices
as.ltMatrices(x)
as.syMatrices(x)
is.chol(x)
is.invchol(x)
as.chol(x)
as.invchol(x)
chol2cov(x)
invchol2chol(x)
chol2invchol(x)
invchol2cov(x)
invchol2pre(x)
chol2pre(x)
Dchol(x, D = 1 / sqrt(Tcrossprod(x, diag_only = TRUE)))
invcholD(x, D = sqrt(Tcrossprod(solve(x), diag_only = TRUE)))
chol2cor(x)
invchol2cor(x)
chol2pc(x)
invchol2pc(x)
vectrick(C, S, A, transpose = c(TRUE, TRUE))
standardize(chol, invchol)
destandardize(chol = solve(invchol), invchol, score_schol)
as.ltMatrices(x)
The constructor ltMatrices
returns objects of class ltMatrices
with corresponding methods. The constructor syMatrices
returns objects of class
syMatrices
with a reduced set of methods.
a matrix
representing the lower triagular elements of
\(N\) lower triangular matrix, each of dimension \(J \times
J\). Dimensions of object
depend on diag
: With
diagonal elements, object
is a \(J(J+1)/2 \times N\) matrix,
otherwise, the number of rows is \(J(J - 1) / 2\).
logical, object
contains diagonal elements if
TRUE
, otherwise unit diagonal elements are assumed.
logical, object
represents matrices in row-major order
if TRUE
or, otherwise, in column-major order.
logical or character vector of length \(J\).
logical, object is interpreted as a symmetric matrix if
TRUE
.
logical, compute diagonal elements of crossproduct only
if TRUE
.
object of class ltMatrices
or syMatrices
(for chol
).
a matrix of diagonal elements to be assigned (of dimension \(J \times N\)).
object of class ltMatrices
.
a permutation of the covariance matrix corresponding to a
.
a matrix (of dimension \(J \times N\)) of diagonal elements to be multiplied with.
matrix with \(J\) rows.
matrix with \(J\) rows.
an object of class ltMatrices
.
an object of class ltMatrices
or a matrix with \(J^2\) rows
representing multiple \(J x J\) matrices (columns of vec operators).
an object of class ltMatrices
.
a logical of length two indicating if A
or B
shall be transposed in vectrick
.
For solve
, this argument being true computes
solve(t(a), b)
(in absence of a t()
method for ltMatrices
objects).
score matrix for a standardized chol
object.
additional arguments, currently ignored.
ltMatrices
interprets a matrix as lower triangular elements of
multiple lower triangular matrices. The corresponding class can be used to
store such matrices efficiently. Matrix multiplications, solutions to linear
systems, explicite inverses, and crossproducts can be computed based on such
objects. Details can be found in the lmvnorm_src
package vignette.
syMatrices
only store the lower triangular parts of multiple
symmetric matrices.
vignette("lmvnorm_src", package = "mvtnorm")
J <- 4L
N <- 2L
dm <- paste0("d", 1:J)
xm <- paste0("x", 1:N)
(C <- ltMatrices(matrix(runif(N * J * (J + 1) / 2),
ncol = N, dimnames = list(NULL, xm)),
diag = TRUE, names = dm))
## dimensions and names
dim(C)
dimnames(C)
names(C)
## subset
C[,2:3]
## multiplication
y <- matrix(runif(N * J), nrow = J)
Mult(C, y)
## solve
solve(C)
solve(C, y)
## tcrossprod
Tcrossprod(C)
## convert to matrix
as.array(solve(C[1,]))[,,1]
Run the code above in your browser using DataLab