Saya memiliki pengalaman sebelumnya dengan validasi silang K-fold 'normal' untuk tuning model dan saya sedikit bingung dengan aplikasi dalam model time-series.
Ini adalah pemahaman saya bahwa untuk model deret waktu konsekuensi wajar untuk cross-validasi adalah prosedur 'asal-usul ke depan' yang dijelaskan oleh Hyndman . Ini masuk akal bagi saya dan kode di bawah ini menunjukkan penggunaan tsCV
fungsi dalam R, dari blog Hydman , untuk menunjukkan bagaimana kesalahannya berbeda dari CV vs seluruh dataset dalam sekali jalan.
library(fpp)
e <- tsCV(dj, rwf, drift=TRUE, h=1)
sqrt(mean(e^2, na.rm=TRUE))
## [1] 22.68249
sqrt(mean(residuals(rwf(dj, drift=TRUE))^2, na.rm=TRUE))
## [1] 22.49681
Sekarang, di tautan di atas disebutkan bahwa parameter drift diestimasikan ulang pada setiap asal perkiraan baru. Dalam CV 'normal' saya akan memiliki grid parameter saya akan mengevaluasi terhadap setiap lipatan sehingga saya bisa mendapatkan rata-rata untuk menentukan parameter terbaik untuk digunakan. Saya kemudian akan menggunakan parameter-parameter 'terbaik' itu agar sesuai dengan set pelatihan penuh dan menggunakannya sebagai model akhir saya untuk mengevaluasi set tes saya sebelumnya. Catatan, ini adalah validasi silang bersarang jadi saya tidak melatih set pengujian saya kapan pun.
Ini jelas tidak terjadi dengan 'bergulir asal maju' prosedur dimana parameter yang dioptimalkan untuk setiap kali lipat (setidaknya untuk metode R seperti bats
, tbats
, auto.arima
, dll). Apakah saya salah berpikir tentang metode ini dalam hal penyetelan parameter model atau bagaimana saya memilih parameter model deret waktu untuk ditetapkan untuk model akhir yang akan digunakan? Atau apakah penyetelan parameter tidak mempertimbangkan masalah dengan model deret waktu di mana optimasi tampaknya menjadi bagian dari pemasangan model dan hasil dari CV adalah dengan mengatakan seberapa baik kinerja masing-masing model secara keseluruhan? Dan bahwa model akhir dibangun dengan sebagian besar data pada akhirnya adalah model yang akan saya gunakan?
Saya menyadari ini bisa diulangi dalam pertanyaan yang bahkan lebih sederhana. Setelah melakukan validasi silang ('asal-usul ke depan'), apakah saya hanya menggunakan model terakhir yang dibuat (dengan superset terbesar sebagai model pas terakhir? Atau apa yang disarankan?