Nothing
library(SEMID)
context("Components related to the tian decomposition.")
source("helperFunctions.R")
test_that("The Tian decomposition recovers covariance matrices correctly.", {
# Random test
set.seed(123)
ps <- c(0.1, 0.05)
sims <- 10
ns <- c(10, 20)
for (p in ps) {
for (n in ns) {
for (i in 1:sims) {
L <- rDirectedAdjMatrix(n, p)
O <- rUndirectedAdjMat(n, p)
LL <- L * matrix(rnorm(n^2), ncol = n)
OO <- (O + diag(n)) * matrix(rnorm(n^2), ncol = n)
OO <- OO + t(OO)
Sigma <- solve(t(diag(n) - LL)) %*% OO %*% solve(diag(n) - LL)
g <- MixedGraph(L, O)
cComponents <- g$tianDecompose()
for (comp in cComponents) {
internal <- comp$internal
incoming <- comp$incoming
topOrder <- comp$topOrder
LLnew <- LL[topOrder, topOrder, drop = F]
LLnew[, topOrder %in% incoming] <- 0
OOnew <- OO[topOrder, topOrder, drop = F]
OOnew[topOrder %in% incoming, topOrder %in% incoming] <- diag(length(incoming))
SigmaNew <- solve(t(diag(length(topOrder)) - LLnew)) %*% OOnew %*%
solve(diag(length(topOrder)) - LLnew)
recoveredSigma = tianSigmaForComponent(Sigma, internal, incoming, topOrder)
expect_true(all((abs(SigmaNew - recoveredSigma) / (abs(SigmaNew) + 1e-6)) < 1e-3))
}
}
}
}
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.