Nothing
## -----------------------------------------------------------------------------
#| label: setup
library(causalDisco)
## -----------------------------------------------------------------------------
#| label: my_custom_test
my_test <- function(x, y, conditioning_set, suff_stat) {
C <- suff_stat$C
n <- suff_stat$n
vars <- c(x, y, conditioning_set)
C_sub <- C[vars, vars, drop = FALSE]
K <- solve(C_sub)
r <- -K[1, 2] / sqrt(K[1, 1] * K[2, 2])
z <- 0.5 * log((1 + r) / (1 - r))
stat <- sqrt(n - length(conditioning_set) - 3) * abs(z)
pval <- 2 * (1 - pnorm(stat))
pval
}
my_suff_stat <- function(data) {
list(
C = cor(data),
n = nrow(data)
)
}
## -----------------------------------------------------------------------------
#| label: using_my_custom_test_causalDisco
data(num_data)
my_tpc <- tpc(
engine = "causalDisco",
test = my_test,
alpha = 0.05,
suff_stat_fun = my_suff_stat
)
result <- disco(data = num_data, method = my_tpc)
plot(result)
## -----------------------------------------------------------------------------
#| label: using_my_custom_test_pcalg
my_pc <- pc(
engine = "pcalg",
test = my_test,
alpha = 0.05,
suff_stat_fun = my_suff_stat
)
result <- disco(data = num_data, method = my_pc)
plot(result)
## -----------------------------------------------------------------------------
#| label: my_custom_test_bnlearn
my_test_bnlearn <- function(x, y, conditioning_set, suff_stat, args = list()) {
not_used <- args$not_used
C <- cor(suff_stat)
n <- nrow(suff_stat)
vars <- c(x, y, conditioning_set)
C_sub <- C[vars, vars, drop = FALSE]
K <- solve(C_sub)
r <- -K[1, 2] / sqrt(K[1, 1] * K[2, 2])
z <- 0.5 * log((1 + r) / (1 - r))
stat <- sqrt(n - length(conditioning_set) - 3) * abs(z)
pval <- 2 * (1 - pnorm(stat))
pval
}
my_pc <- pc(
engine = "bnlearn",
test = my_test_bnlearn,
alpha = 0.05,
args = list(not_used = "Example of passing additional arguments")
)
result <- disco(data = num_data, method = my_pc)
plot(result)
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.