Nothing
## -----------------------------------------------------------------------------
#| label: setup
library(causalDisco)
## -----------------------------------------------------------------------------
#| label: hpc function
hpc <- function(
engine = c("bnlearn"),
test,
alpha = 0.05,
...
) {
engine <- match.arg(engine)
make_method(
method_name = "hpc",
engine = engine,
engine_fns = list(
bnlearn = function(...) make_runner(engine = "bnlearn", alg = "hpc", ...)
),
test = test,
alpha = alpha,
graph_class = "PDAG",
...
)
}
## -----------------------------------------------------------------------------
#| label: hpc example
data(tpc_example)
hpc_bnlearn <- hpc(engine = "bnlearn", test = "fisher_z", alpha = 0.05)
hpc_bnlearn_result <- disco(tpc_example, hpc_bnlearn)
plot(hpc_bnlearn_result)
## -----------------------------------------------------------------------------
#| label: register algorithm
register_tetrad_algorithm(
"my_boss_variant",
function(
self,
num_starts = 1,
use_bes = TRUE,
use_data_order = TRUE,
output_cpdag = TRUE
) {
self$set_params(
USE_BES = use_bes,
NUM_STARTS = num_starts,
USE_DATA_ORDER = use_data_order,
OUTPUT_CPDAG = output_cpdag
)
self$alg <- rJava::.jnew(
"edu/cmu/tetrad/algcomparison/algorithm/oracle/cpdag/Boss",
self$score
)
self$alg$setKnowledge(self$knowledge)
}
)
## -----------------------------------------------------------------------------
#| label: my_boss_variant function
my_boss_variant <- function(
engine = "tetrad",
score,
...
) {
engine <- match.arg(engine)
make_method(
method_name = "my_boss_variant",
engine = engine,
engine_fns = list(
tetrad = function(...) {
make_runner(engine = "tetrad", alg = "my_boss_variant", ...)
}
),
score = score,
graph_class = "PDAG",
...
)
}
## -----------------------------------------------------------------------------
#| label: my_boss_variant example
#| eval: false
# # Ensure Tetrad is installed and Java is working before running the algorithm
# if (verify_tetrad()$installed && verify_tetrad()$java_ok) {
# my_boss_variant_tetrad <- my_boss_variant(
# engine = "tetrad",
# score = "sem_bic"
# )
# my_boss_variant_tetrad_result <- disco(tpc_example, my_boss_variant_tetrad)
# plot(my_boss_variant_tetrad_result)
# }
## -----------------------------------------------------------------------------
#| label: my_boss_variant_tetrad algorithm plot code
#| echo: false
#| eval: false
# # Code to generate the plot image on pkgdown and CRAN.
#
# # For pkgdown (comment out to avoid CRAN NOTE about unstated dependency used) use the function fig_settings
# # ragg::agg_png(
# # filename = "custom-boss-variant-pkgdown.png",
# # width = fig_settings$fig.width,
# # height = fig_settings$fig.height,
# # units = "in",
# # res = fig_settings$dpi * fig_settings$fig.retina
# # )
# my_boss_variant_tetrad <- my_boss_variant(engine = "tetrad", score = "sem_bic")
# my_boss_variant_tetrad_result <- disco(tpc_example, my_boss_variant_tetrad)
# plot(my_boss_variant_tetrad_result)
# dev.off()
#
# # For CRAN
# # Hardcoded since knitr::opts_current$get() is different when running in console.
# ragg::agg_png(
# filename = "custom-boss-variant-cran.png",
# width = 3,
# height = 3,
# units = "in",
# res = 92 * 1
# )
# my_boss_variant_tetrad <- my_boss_variant(engine = "tetrad", score = "sem_bic")
# my_boss_variant_tetrad_result <- disco(tpc_example, my_boss_variant_tetrad)
# plot(my_boss_variant_tetrad_result)
# dev.off()
## -----------------------------------------------------------------------------
#| label: ges-ebic-tetrad-include
#| echo: false
img_file <- if (identical(Sys.getenv("IN_PKGDOWN"), "true")) {
"custom-boss-variant-pkgdown.png"
} else {
"custom-boss-variant-cran.png"
}
knitr::include_graphics(img_file)
## -----------------------------------------------------------------------------
#| label: cleanup
reset_tetrad_alg_registry()
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.