View source: R/sparsify_block_banded.R
| sparsify_block_banded | R Documentation |
Make a precision-like matrix block-banded according to group membership, keeping only entries within specified group neighborhoods.
sparsify_block_banded(mat, membership, neighbor.range = 1)
mat |
A |
membership |
An integer vector specifying the group membership.
The length of |
neighbor.range |
An integer (default = 1) specifying the neighbor range,
where groups whose labels differ by at most |
An object with S3 class "sparsify_block_banded" containing
the following components:
The masked precision matrix.
The covariance matrix, i.e., the inverse of Omega.
Proportion of zero entries in Omega.
An integer vector specifying the group membership.
library(grasps)
## reproducibility for everything
set.seed(1234)
## precision matrix estimation
X <- matrix(rnorm(200), 10, 20)
membership <- c(rep(1,5), rep(2,5), rep(3,4), rep(4,6))
est <- grasps(X, membership = membership, penalty = "lasso", crit = "BIC")
## default: keep blocks within ±1 of each group
res1 <- sparsify_block_banded(est$hatOmega, membership, neighbor.range = 1)
plot(res1)
## wider band: keep blocks within ±2 of each group
res2 <- sparsify_block_banded(est$hatOmega, membership, neighbor.range = 2)
plot(res2)
## special case: block-diagonal matrix
res3 <- sparsify_block_banded(est$hatOmega, membership, neighbor.range = 0)
plot(res3)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.