Я подумал, что с пакетом Kernlab можно прогнозировать временные ряды следующим образом:
library(kerlab)
n <- 30
f <- 3
fspan <- (n+1):(n+f)
set.seed(123)
d <- exp(cumsum(rnorm(n,0,0.5)))
time <- 1:n
fitgp <- gausspr(d, time,variance.model=TRUE)
predgp <- predict(fitgp, fspan)
plot(d~time,type='l',xlim=c(1,n+f),ylim=c(0,15))
points(predgp~fspan,col='red',pch=16)
Очевидно, есть некоторые проблемы.
1) почему мои прогнозы не имеют никакого смысла?Я подумал, что, возможно, это потому, что они масштабируются, но в справке говорится, что масштабирование сохраняется в качестве атрибута для прогнозов, и значения определенно не в «немасштабированном» масштабе.Я пробовал более длинные и стационарные временные ряды, данные из реальной жизни, другие ядра, но предсказания - это всегда прямые линии, далекие от конечной точки данных.Чего мне не хватает?
2) Меня не волнует среднее.То, что я хочу, это стохастические траектории.Это можно сделать с помощью функции «имитация» для других методов прогнозирования (например, арима), но simulate.gausspr
не существует.Как мне это сделать?
То, что я хотел бы получить, это ниже, но с gausspr;
fitari <- auto.arima(d)
predari <- forecast(fitari,f)
points(predari$mean~fspan,col='green',pch=16)
dummy <- replicate(10, lines(simulate(fitari),col='grey'))
Спасибо