Time Series Parameter learning in R
source("bayesserver.R")
createNetworkStructure <- function() {
network <- new(Network)
x1 <- new(Variable, "X1", VariableValueType$CONTINUOUS)
x2 <- new(Variable, "X2", VariableValueType$CONTINUOUS)
nodeX <- new(Node, "X", toVariableArray(x1, x2))
nodeX$setTemporalType(TemporalType$TEMPORAL)
network$getNodes()$add(nodeX)
for (order in 1:4) {
network$getLinks()$add(new(Link, nodeX, nodeX, order))
}
return(network)
}
network <- createNetworkStructure()
x1 <- network$getVariables()$get("X1")
x2 <- network$getVariables()$get("X2")
data <- read.csv("timeseries-data.csv")
learning <- new(ParameterLearning, network, new(RelevanceTreeInferenceFactory))
learningOptions <- new(ParameterLearningOptions)
temporalDataReaderCommand <- new(DataTableDataReaderCommand, toDataTable(data))
temporalReaderOptions <- new(TemporalReaderOptions, "Case", "Time", TimeValueType$INDEX)
temporalVariableReferences <- toVariableReferenceList(c(
new(VariableReference, x1, ColumnValueType$VALUE, x1$getName()),
new(VariableReference, x2, ColumnValueType$VALUE, x2$getName()))
)
evidenceReaderCommand <- new(DefaultEvidenceReaderCommand,
temporalDataReaderCommand,
temporalVariableReferences,
temporalReaderOptions)
result <- learning$learn(evidenceReaderCommand, learningOptions)
print(sprintf("Log likelihood = %f", result$getLogLikelihood()))