Compare two staged event trees, return the differences of the stages structure and plot the difference tree. Three different methods to compute the difference tree are available (see Details).
compare_stages(
object1,
object2,
method = "naive",
return_tree = FALSE,
plot = FALSE,
...
)hamming_stages(object1, object2, return_tree = FALSE)
diff_stages(object1, object2)
an object of class sevt.
an object of class sevt.
character, method to compare staged event trees.
One of: "naive",
"hamming" or "stages".
logical, if TRUE the difference tree is returned.
logical.
additional parameters to be passed to plot.sevt.
compare_stages: if return_tree = FALSE, logical: TRUE if the two
models are exactly equal, otherwise FALSE.
Else if return_tree = TRUE, the differences between
the two trees, according to the selected method.
hamming_stages: if return_tree = FALSE, integer, the minimum
number of situations where the stage should be changed to obtain the same
models. If return_tree = TRUE a stages-like structure showing which
situations should be modified to obtain the same models.
diff_stages: a stages-like structure marking the situations belonging
to stages which are not the exactly equal.
compare_stages tests if the stage structure of two sevt
objects
is the same.
Three methods are available:
naive first applies stndnaming to both
objects and then simply compares the resulting stage names.
hamming uses the hamming_stages function that finds
a minimal subset of nodes which stages
must be changed to obtain the same structure.
stages uses the diff_stages function that compares
stages to check whether the same stage structure is present in both models.
Setting return_tree = TRUE will return the stages
difference obtained with the selected method.
The stages difference is a list of numerical vectors with same
lengths and structure as stages(object1) or stages(object2),
where values are 1 if the corresponding node has different
(with respect to the selected method) associated stage, and
0 otherwise.
With plot = TRUE the plot of the difference tree is displayed.
If return_tree = FALSE and plot = FALSE
the logical output is the same for the
three methods and thus the naive method should be used
since it is computationally faster.
hamming_stages finds a minimal set of nodes for which the associated stages
should be changed to obtain equivalent structures. To do that, a maximum-weight bipartite
matching problem between the stages of the two staged trees is solved using the
Hungarian method implemented in the solve_LSAP function of the clue
package.
hamming_stages requires the package clue.
# NOT RUN {
data("Asym")
mod1 <- stages_bhc(full(Asym, lambda = 1))
mod2 <- stages_fbhc(full(Asym, lambda = 1))
compare_stages(mod1, mod2)
##########
m0 <- full(PhDArticles[, 1:4], lambda = 0)
m1 <- stages_bhc(m0)
m2 <- stages_bj(m0, distance = "totvar", thr = 0.25)
diff_stages(m1, m2)
# }
Run the code above in your browser using DataLab