Description Details Author(s) References Examples
Dynamic Bayesian Network Structure Learning, Parameter Learning and Forecasting. This package implements a model of Gaussian Dynamic Bayesian Networks with temporal windows, based on collections of linear regressors for Gaussian nodes. The package allows learning the structure of univariate time series, learning parameters and forecasting.
Package: | dbnlearn-package |
Type: | Package |
Version: | 0.1.0 |
Date: | 2020-07-17 |
License: | MIT + file LICENSE |
Robson Fernandes
Institute of Mathematical and Computer Sciences
University of Sao Paulo - ICMC-USP
Maintainer: Robson Fernandes robson.fernandes@usp.br
Koller D, Friedman N (2009). Probabilistic Graphical Models: Principles and Techniques. MIT Press.
Korb K, Nicholson AE (2010). Bayesian Artificial Intelligence. Chapman & Hall/CRC, 2nd edition.
Pearl J (1988). Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. Morgan Kaufmann.
Nagarajan R, Scutari M, Lebre S (2013). Bayesian Networks in R with Applications in Systems Biology. Springer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | library(dbnlearn)
library(bnviewer)
library(ggplot2)
#Time Series AirPassengers
ts <- AirPassengers
#Time Series Preprocessing with time window = 12
X.ts = dbn.preprocessing(ts, window = 12)
#Define 70% Train and 30% Test Data Set
percent = 0.7
n = nrow(X.ts)
trainIndex <- seq_len(length.out = floor(x = percent * n))
X.ts.train <- X.ts[trainIndex,]
X.ts.test <- X.ts[-trainIndex,]
#Dynamic Bayesian Network Structure Learning
ts.learning = dbn.learn(X.ts.train)
#Viewer Dynamic Bayesian Network
viewer(ts.learning,
edges.smooth = TRUE,
bayesianNetwork.height = "400px",
node.colors = list(background = "#f4bafd",
border = "#2b7ce9",
highlight = list(background = "#97c2fc",
border = "#2b7ce9")),
bayesianNetwork.layout = "layout_with_sugiyama")
#Dynamic Bayesian Network Fit
ts.fit = dbn.fit(ts.learning, X.ts.train)
#Predict values
prediction = dbn.predict(ts.fit, X.ts.test)
#Plot Real vs Predict
real = X.ts.test[, "X_t"]
prediction = prediction
df.validation = data.frame(list(real = real, prediction = prediction))
ggplot(df.validation, aes(seq(1:nrow(df.validation)))) +
geom_line(aes(y = real, colour="real")) +
geom_line(aes(y = prediction, colour="prediction")) +
scale_color_manual(values = c(
'real' = 'deepskyblue',
'prediction' = 'maroon1')) +
labs(title = "Dynamic Bayesian Network",
subtitle = "AirPassengers Time Series",
colour = "Legend",
x = "Time Index",
y = "Values") + theme_minimal()
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.