prediction {gmgm} | R Documentation |
Perform predictive inference in a Gaussian mixture dynamic Bayesian network
Description
This function performs predictive inference in a Gaussian mixture dynamic
Bayesian network. For a sequence of time slices, this task consists
in defining a time horizon
such that at each time slice
(for
), the state of the system at
is
estimated given all the data (the evidence) collected up to
. Although
the states at
are observed in the future, some
information about them can be known a priori (such as contextual information
or features controlled by the user). This "predicted" evidence can be taken
into account when propagating the particles from
to
in
order to improve the predictions. Predictive inference is performed by
sequential importance resampling, which is a particle-based approximate
method (Koller and Friedman, 2009).
Usage
prediction(
gmdbn,
evid,
evid_pred = NULL,
nodes = names(gmdbn$b_1),
col_seq = NULL,
horizon = 1,
n_part = 1000,
max_part_sim = 1e+06,
min_ess = 1,
verbose = FALSE
)
Arguments
gmdbn |
An object of class |
evid |
A data frame containing the evidence. Its columns must explicitly
be named after nodes of |
evid_pred |
A data frame containing the "predicted" evidence. Its
columns must explicitly be named after nodes of |
nodes |
A character vector containing the inferred nodes (by default all
the nodes of |
col_seq |
A character vector containing the column names of |
horizon |
A positive integer vector containing the time horizons for which predictive inference is performed. |
n_part |
A positive integer corresponding to the number of particles generated for each observation sequence. |
max_part_sim |
An integer greater than or equal to |
min_ess |
A numeric value in [0, 1] corresponding to the minimum ESS
(expressed as a proportion of |
verbose |
A logical value indicating whether subsets of |
Value
If horizon
has one element, a data frame with a structure
similar to evid
containing the predicted values of the inferred
nodes and their observation sequences (if col_seq
is not NULL
).
If horizon
has two or more elements, a list of data frames (tibbles)
containing these values for each time horizon.
References
Koller, D. and Friedman, N. (2009). Probabilistic Graphical Models: Principles and Techniques. The MIT Press.
See Also
filtering
, inference
,
smoothing
Examples
set.seed(0)
data(gmdbn_air, data_air)
evid <- data_air
evid$NO2[sample.int(7680, 1536)] <- NA
evid$O3[sample.int(7680, 1536)] <- NA
pred <- prediction(gmdbn_air, evid, evid[, c("DATE", "TEMP", "WIND")],
nodes = c("NO2", "O3"), col_seq = "DATE",
horizon = c(1, 2), verbose = TRUE)