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:

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 gmbn corresponding to the transition models. Each gmbn object must be named with the prefix b_ followed by its associated transition time slice (e.g. a transition model whose transition time slice is 8 is represented by the gmbn object b_8). If the first gmbn object (chronologically) is associated with a transition time slice t \ge 2 (i.e. b_1 is not specified), it is duplicated to create transition models associated with 1, \dots , t - 1 (removing the arcs whose time lags exceed the maximum temporal depths of these models).

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

gmbn, gmm

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


[Package gmgm version 1.1.2 Index]