gmdbn {gmgm} | R Documentation |
Create a Gaussian mixture dynamic Bayesian network
Description
This function creates a Gaussian mixture dynamic Bayesian network as an
object of S3 class gmdbn
. Assuming that the system evolves over time
(possibly non-stationary) and denoting by X^{(t)}
its state at time
slice t
, a dynamic Bayesian network is a probabilistic graphical model
that encodes the joint distribution over any finite time sequence:
p(X^{(1)}, \dots , X^{(T)}) = p(X^{(1)})
\prod_{t = 2}^T p(X^{(t)} | X^{(t - 1)}, \dots , X^{(1)})
It is defined by a sequence of transition models
\mathcal{B}_1, \mathcal{B}_2, \dots , \mathcal{B}_N
associated with
transition time slices t_1 = 1 < t_2 < \dots < t_N
, where:
-
\mathcal{B}_1
is a Bayesian network that encodes the distributionp(X^{(t)})
for1 \le t \le t_2 - 1
, assuming that the states at these time slices do not depend on previous states; for each
i \ge 2
,\mathcal{B}_i
is a (k_i + 1
)-slice temporal Bayesian network (wherek_i < t_i
) that encodes the transition distributionp(X^{(t)} | X^{(t - 1)}, \dots , X^{(t - k_i)})
fort_i \le t \le t_{i + 1} - 1
(ort \ge t_i
ifi = N
), assuming that the states at these time slices only depend on thek_i
previous states (Hourbracq et al., 2017).
In a Gaussian mixture dynamic Bayesian network, these transition models are Gaussian mixture Bayesian networks (Roos et al., 2017).
Usage
gmdbn(...)
Arguments
... |
Objects of class |
Value
A list of class gmdbn
containing the gmbn
objects
passed as arguments.
References
Hourbracq, M., Wuillemin, P.-H., Gonzales, C. and Baumard, P. (2017). Learning and Selection of Dynamic Bayesian Networks for Non-Stationary Processes in Real Time. In Proceedings of the 30th International Flairs Conference, pages 742–747, Marco Island, FL, USA.
Roos, J., Bonnevay, S. and Gavin, G. (2017). Dynamic Bayesian Networks with Gaussian Mixture Models for Short-Term Passenger Flow Forecasting. In Proceedings of the 12th International Conference on Intelligent Systems and Knowledge Engineering, Nanjing, China.
See Also
Examples
library(dplyr)
data(data_air)
data <- data_air %>%
group_by(DATE) %>%
mutate(NO2.1 = lag(NO2), O3.1 = lag(O3), TEMP.1 = lag(TEMP),
WIND.1 = lag(WIND)) %>%
ungroup()
gmdbn_1 <- gmdbn(
b_2 = gmbn(
NO2 = split_comp(add_var(NULL, data[, c("NO2", "NO2.1", "WIND")]),
n_sub = 3),
O3 = split_comp(add_var(NULL,
data[, c("O3", "NO2", "NO2.1", "O3.1", "TEMP",
"TEMP.1")]),
n_sub = 3),
TEMP = split_comp(add_var(NULL, data[, c("TEMP", "TEMP.1")]), n_sub = 3),
WIND = split_comp(add_var(NULL, data[, c("WIND", "WIND.1")]), n_sub = 3)
),
b_13 = gmbn(
NO2 = split_comp(add_var(NULL, data[, c("NO2", "NO2.1", "WIND")]),
n_sub = 3),
O3 = split_comp(add_var(NULL,
data[, c("O3", "O3.1", "TEMP", "TEMP.1", "WIND")]),
n_sub = 3),
TEMP = split_comp(add_var(NULL, data[, c("TEMP", "TEMP.1")]), n_sub = 3),
WIND = split_comp(add_var(NULL, data[, c("WIND", "WIND.1")]), n_sub = 3)
)
)