Forbids every edge between variables that are more than max_lag tiers
apart, based on the tiers currently defined on kn.
See also
Other knowledge helpers:
+.Knowledge(),
add_exogenous(),
add_tier(),
add_to_tier(),
add_vars(),
as_bnlearn_knowledge(),
as_pcalg_constraints(),
as_tetrad_knowledge(),
convert_tiers_to_forbidden(),
deparse_knowledge(),
forbid_edge(),
get_tiers(),
knowledge(),
knowledge_to_caugi(),
remove_edge(),
remove_tiers(),
remove_vars(),
reorder_tiers(),
reposition_tier(),
require_edge(),
seq_tiers(),
set_knowledge(),
unfreeze()
Examples
data(tpc_example)
# verb form: forbid edges that skip more than one tier
kn1 <- knowledge(
tpc_example,
tier(
child ~ starts_with("child"),
youth ~ starts_with("youth"),
old ~ starts_with("oldage")
)
) |>
set_max_lag(1)
print(kn1)
#> <Knowledge: 3 tiers | max_lag = 1 | 6 vars | 4 forbidden>
#> tier(child): child_x1, child_x2
#> tier(youth): youth_x3, youth_x4
#> tier(old): oldage_x5, oldage_x6
#> forbidden:
#> child_x1!-->oldage_x5 + oldage_x6
#> child_x2!-->oldage_x5 + oldage_x6
# DSL form: max_lag() inside tier() is equivalent
kn2 <- knowledge(
tpc_example,
tier(
child ~ starts_with("child"),
youth ~ starts_with("youth"),
old ~ starts_with("oldage"),
max_lag(1)
)
)
print(identical(kn1, kn2))
#> [1] TRUE
