#
# The following code provide extensions to DSE
#
attractorPath <- function(obj,data,series=1) UseMethod("attractorPath")
#
# Plot the Attractor Path for a TSestModel
# series = output series to plot
#
attractorPath.SS <- function(obj,data,series=1) {
obj1 <- l(obj,data)
n <- periodsOutput(obj1)
m <- nseriesOutput(obj1)
tstart=start(obj1)
obj2 <- simulate(obj1,noise=matrix(0,n,m),start=tstart)
tfOnePlot(tbind(outputData(obj1,series=series),outputData(obj2,series=series)))
}
phaseSpace <- function(obj,data,n=500) UseMethod("phaseSpace")
phaseSpace.SS <-
function(obj,data,n=500) {
require(scatterplot3d)
obj1 <- l(obj,data)
m <- dim(outputData(data))[2]
model <- simulate(obj1,sampleT=n,noise=matrix(0,n,m))
data <- outputData(obj1)
m <- dim(data)[2]
if (m > 3) m <- 3
if (m == 3) scatterplot3d(data[,1:m], type="l") else if (m == 2) plot(data[,1],data[,2],xlab=seriesNames(data)[1],ylab=seriesNames(data)[2], type="l") else stop("no phase space")
}
merge.forecast <- function (fx,n=1) {
x <- splice(fx$pred,fx$forecast[[n]])
colnames(x) <- seriesNames(fx$data$output)
return(x)
}
AIC <- function(model) {informationTestsCalculations(model)[3]}