Last chance! 50% off unlimited learning
Sale ends in
dag2pag(suffStat, indepTest, graph, L, alpha, rules = rep(TRUE,10),
verbose = FALSE)
list
containing all necessary elements for the conditional independence
decisions in the function indepTest
.function
for testing conditional
independence. The function is internally called as
indepTest(x,y,S,suffStat)
, and tests conditional independence
of x
and y
p
nodes, a randomDAG
).graph
corresponding to the latent variables.TRUE
, detailed output is provided.class
fciAlgo
,
containing the estimated graph (in the form of an adjacency matrix
with various possible edge marks), the conditioning sets that lead to
edge removals (sepset) and several other parameters.fciAlgo
class
object, using the ancestor information and conditional independence
tests entailed in the true DAG. The output of this function is
exactly the same as the one using
fci(suffStat, gaussCItest, p, alpha, rules = rep(TRUE, 10))
using the true correlation matrix in gaussCItest()
with a large
fci
, pc
## create the graph
set.seed(78)
g <- randomDAG(10, prob = 0.25)
graph::nodes(g) # "1" "2" ... "10" % FIXME: should be kept in result!
## define nodes 2 and 6 to be latent variables
L <- c(2,6)
## compute the true covariance matrix of g
cov.mat <- trueCov(g)
## transform covariance matrix into a correlation matrix
true.corr <- cov2cor(cov.mat)
## Find PAG
## as dependence "oracle", we use the true correlation matrix in
## gaussCItest() with a large "virtual sample size" and a large alpha:
system.time(
true.pag <- dag2pag(suffStat = list(C = true.corr, n = 10^9),
indepTest = gaussCItest,
graph=g, L=L, alpha = 0.9999) )
### ---- Find PAG using fci-function --------------------------
## From trueCov(g), delete rows and columns belonging to latent variable L
true.cov1 <- cov.mat[-L,-L]
## transform covariance matrix into a correlation matrix
true.corr1 <- cov2cor(true.cov1)
## Find PAG with FCI algorithm
## as dependence "oracle", we use the true correlation matrix in
## gaussCItest() with a large "virtual sample size" and a large alpha:
system.time(
true.pag1 <- fci(suffStat = list(C = true.corr1, n = 10^9),
indepTest = gaussCItest,
p = ncol(true.corr1), alpha = 0.9999) )
## confirm that the outputs are equal
stopifnot(true.pag@amat == true.pag1@amat)
Run the code above in your browser using DataLab