| grasp_fci | R Documentation |
Run the Greedy Relaxations of the Sparsest Permutation Fast Causal Inference algorithm for causal discovery using one of several engines.
grasp_fci(engine = "tetrad", score, test, alpha = 0.05, ...)
engine |
Character; which engine to use. Must be one of:
|
score |
Character; name of the scoring function to use. |
test |
Character; name of the conditionalâindependence test. |
alpha |
Numeric; significance level for the CI tests. |
... |
Additional arguments passed to the chosen engine (e.g. score and algorithm parameters). |
For specific details on the supported scores, and parameters for each engine, see:
TetradSearch for Tetrad.
While it is possible to call the function returned directly with a data frame,
we recommend using disco(). This provides a consistent interface and handles knowledge
integration.
A function that takes a single argument data (a data frame). When called,
this function returns a list containing:
knowledge A Knowledge object with the background knowledge
used in the causal discovery algorithm. See knowledge() for how to construct it.
caugi A caugi::caugi object representing the learned causal graph.
This graph is a PAG (Partial Ancestral Graph), but since PAGs are not yet
natively supported in caugi, it is currently stored with class UNKNOWN.
Ramsej, J., Andrews, B., Sprites, P. (2025). Efficient Latent Variable Causal Discovery: Combining Score Search and Targeted Testing. doi:10.48550/arXiv.2510.04263.
Other causal discovery algorithms:
boss(),
boss_fci(),
fci(),
ges(),
gfci(),
grasp(),
gs(),
iamb-family,
pc(),
sp_fci(),
tfci(),
tges(),
tpc()
data(tpc_example)
# Requires Tetrad to be installed
if (verify_tetrad()$installed && verify_tetrad()$java_ok) {
# Recommended path using disco()
grasp_fci_tetrad <- grasp_fci(
engine = "tetrad",
test = "fisher_z",
score = "sem_bic",
alpha = 0.05
)
disco(tpc_example, grasp_fci_tetrad)
# or using grasp_fci_tetrad directly
grasp_fci_tetrad(tpc_example)
}
#### With tier knowledge ####
if (verify_tetrad()$installed && verify_tetrad()$java_ok) {
kn <- knowledge(
tpc_example,
tier(
child ~ tidyselect::starts_with("child"),
youth ~ tidyselect::starts_with("youth"),
oldage ~ tidyselect::starts_with("oldage")
)
)
# Recommended path using disco()
grasp_fci_tetrad <- grasp_fci(
engine = "tetrad",
test = "fisher_z",
score = "sem_bic",
alpha = 0.05
)
disco(tpc_example, grasp_fci_tetrad, knowledge = kn)
# or using grasp_fci_tetrad directly
grasp_fci_tetrad <- grasp_fci_tetrad |> set_knowledge(kn)
grasp_fci_tetrad(tpc_example)
}
# With all algorithm arguments specified
if (verify_tetrad()$installed && verify_tetrad()$java_ok) {
grasp_fci_tetrad <- grasp_fci(
engine = "tetrad",
test = "poisson_prior",
score = "rank_bic",
alpha = 0.05,
depth = 3,
stable_fas = FALSE,
max_disc_path_length = 5,
covered_depth = 3,
singular_depth = 2,
nonsingular_depth = 2,
ordered_alg = TRUE,
raskutti_uhler = TRUE,
use_data_order = FALSE,
num_starts = 3,
guarantee_pag = TRUE
)
disco(tpc_example, grasp_fci_tetrad)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.