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)
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.
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 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.
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