Saya sedang mengerjakan model peramalan berbasis JST untuk seri waktu keuangan. Saya menggunakan validasi silang 5 kali lipat dan kinerja rata-rata begitu. Kinerja pada flip terakhir (iterasi di mana segmen terakhir dihilangkan dari pelatihan dan digunakan untuk validasi) lebih baik daripada rata-rata.
Apakah ini kebetulan / bergantung pada data, atau apakah kinerja validasi pada flip terakhir biasanya lebih baik? (mungkin karena pelatihan dengan semua data sebelumnya lebih terkait dengan data berikutnya dalam rangkaian waktu)
Ini terasa agak seperti pertanyaan aneh, tapi saya tetap mengharapkan beberapa tanggapan. Terima kasih sebelumnya :)
Jawaban:
Dengan deret waktu, Anda tidak dapat menguji model peramalan melalui validasi silang dengan cara normal karena Anda kemudian menggunakan pengamatan di masa mendatang untuk memprediksi masa lalu. Anda harus menggunakan hanya pengamatan sebelumnya untuk memprediksi masa depan. Rangkaian waktu yang setara dengan LOO CV adalah menggunakan asal perkiraan bergulir. Saya sudah menulisnya di posting blog ini . Saya tidak yakin apakah CV k-fold memiliki deret waktu langsung yang setara.
sumber
Dalam Sci-Kit Learn Python Kit mereka memiliki sesuatu yang disebut "TimeSeriesSplit" yang pada dasarnya terlihat seperti kumpulan sampel pelatihan / tes yang akan Anda dapatkan dari Walk Forward Optimization. Rob benar, Anda tidak dapat menggunakan datapoints di masa mendatang untuk melatih untuk set tes terakhir .... jadi cara terbaik untuk memvalidasi silang adalah dengan membagi set pelatihan Anda menjadi sebanyak "lipatan" mungkin sambil mempertahankan set tes "Berjalan Maju" . Konsekuensinya adalah masing-masing pelatihan berturut-turut menetapkan superset dari yang sebelumnya, dan setiap tes menetapkan data yang lebih banyak dan lebih baru untuk menjaga "langkah maju".
sumber