Прогнозирование стохастических временных рядов с использованием регрессии гауссовского процесса - PullRequest
0 голосов
/ 20 сентября 2019

Я подумал, что с пакетом 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'))

Спасибо

...