Find the node of a sequence in a COVLMC context tree
Source:R/ctx_node_covlmc.R
find_sequence.covlmc.Rd
This function checks whether the sequence ctx
is represented in the context
tree of the COVLMC model ct
. If this is the case, it returns a description
of matching node, an object of class ctx_node_covlmc
. If the sequence is
not represented in the tree, the function return NULL
.
Usage
# S3 method for covlmc
find_sequence(ct, ctx, reverse = FALSE, ...)
Arguments
- ct
a context tree.
- ctx
a sequence to search in the context tree
- reverse
specifies whether the sequence
ctx
is given the temporal order (FALSE
, default value) or in the reverse temporal order (TRUE
). See the dedicated section.- ...
additional parameters for the find_sequence function
Value
an object of class ctx_node_covlmc
if the sequence ctx
is represented
in the context tree, NULL
when this is not the case
Details
The function looks for sequences in general. The is_context()
function can
be used on the resulting object to test if the sequence is in addition a
proper context.
State order in a sequence
sequence are given by default
in the temporal order and not in the "reverse" order used by many VLMC
research papers: older values are on the left. For instance, the context
c(1, 0)
is reported if the sequence 0, then 1 appeared in the time series
used to build the context tree. In the present function, reverse
refers
both to the order used for the ctx
parameter and for the default order used by the resulting ctx_node
object.
Examples
pc <- powerconsumption[powerconsumption$week == 5, ]
dts <- cut(pc$active_power, breaks = c(0, quantile(pc$active_power, probs = c(0.5, 1))))
dts_cov <- data.frame(day_night = (pc$hour >= 7 & pc$hour <= 17))
m_cov <- covlmc(dts, dts_cov, min_size = 10)
## not in the tree
vals <- states(m_cov)
find_sequence(m_cov, c(vals[2], vals[2]))
#> NULL
## in the tree but not a context
node <- find_sequence(m_cov, c(vals[1]))
node
#> Sequence [T]: (0,1.34]
#> followed by (0,1.34] (466), (1.34,7.54] (37)
is_context(node)
#> [1] FALSE
## in the tree and a context
node <- find_sequence(m_cov, c(vals[1], vals[1]))
node
#> Context [T]: (0,1.34], (0,1.34]
#> followed by (0,1.34] (433), (1.34,7.54] (32)
is_context(node)
#> [1] TRUE
model(node)
#> (Intercept) day_night_1TRUE day_night_2TRUE
#> -2.759353 2.784578 -2.524973