Menggunakan paket ramalan yang sangat baik oleh Rob Hyndman, saya menemukan perlunya tidak hanya memiliki interval prediksi, tetapi untuk mensimulasikan sejumlah jalur masa depan, mengingat pengamatan masa lalu dari serangkaian waktu dengan musiman kompleks. Ada sesuatu untuk deret waktu yang kurang kompleks dengan satu atau dua musiman saja (simulate.ets () dalam paket perkiraan), tetapi dalam kasus saya, saya akan memerlukan yang setara dengan simulate.ets () untuk model tbats yang lebih kompleks.
Saya berasumsi bahwa data yang diperlukan untuk membuat jalur seperti itu sudah ada di objek fit, namun kemungkinan untuk membuat jalur sampel tampaknya tidak dapat diakses secara langsung. Oleh karena itu, saya menemukan solusi naif dan ingin tahu, apakah pendekatan ini benar.
require(forecast)
fit = bats(test,use.parallel=T,use.damped.trend=F,use.trend=T,seasonal.periods=seasonal.periods)
Secara naif, saya membayangkan bahwa jalur sampel dapat dibangun dengan menggunakan perkiraan titik dari
fit
> forecast(fit)
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1960.016 24.48576 23.82518 25.14633 23.47550 25.49602
1960.032 24.79870 23.88004 25.71735 23.39374 26.20366
1960.048 25.31743 24.39878 26.23608 23.91247 26.72239
1960.065 25.69254 24.77389 26.61120 24.28759 27.09750
1960.081 26.06863 25.14998 26.98729 24.66367 27.47359
1960.097 26.43215 25.51350 27.35080 25.02719 27.83711
1960.113 26.77674 25.85809 27.69540 25.37179 28.18170
dan hanya menambahkan nilai yang diambil secara acak dari prosedur pemasangan model.
> fit$errors
Time Series:
Start = c(1959, 2)
End = c(1960, 1)
Frequency = 365
[1] 0.140656913 -0.455335141 -0.558989185 1.697532911 -0.114406022 0.366182718 -0.377056927 0.396144296
Karenanya, dengan
prediction = forecast(fit)
errors = fit$errors
path = prediction$mean + sample(errors, size = length(prediction$mean))
plot(ts(path))
satu jalur sampel dapat dibangun.
Apakah ini cara yang valid untuk membangun jalur sampel? Jika tidak, apa cara yang benar?
Terima kasih banyak atas bantuannya!
sumber
simulate.tbats
metode?Ini mungkin jawaban yang sangat terlambat tetapi saya tidak mengerti mengapa tidak.
Pendekatan Anda tampaknya benar. Tapi, ada cara yang lebih mudah untuk melakukannya.
Anda telah menetapkan nama variabel untuk perkiraan Anda. Anda hanya perlu melakukannya
plot(prediction)
. Dengan menambahkan variabelh
yang merupakan jumlah periode perkiraanprediction
, Anda dapat mengontrol panjang perkiraan. Misalnya, bisa dibilangprediction <- forecast(fit, h = 48)
. Perhatikan bahwa nilaih
tergantung pada seberapa jauh ke masa depan yang ingin Anda lihat.sumber