Memodelkan Rentang Waktu yang Tidak Rata

12

Saya memiliki variabel kontinu, disampel selama periode satu tahun dengan interval tidak teratur. Beberapa hari memiliki lebih dari satu pengamatan per jam, sedangkan periode lainnya tidak memiliki apa-apa selama berhari-hari. Ini membuatnya sangat sulit untuk mendeteksi pola dalam deret waktu, karena beberapa bulan (misalnya Oktober) sangat diambil sampelnya, sementara yang lain tidak.

masukkan deskripsi gambar di sini

Pertanyaan saya adalah apa yang akan menjadi pendekatan terbaik untuk memodelkan seri waktu ini?

  • Saya percaya sebagian besar teknik analisis deret waktu (seperti ARMA) membutuhkan frekuensi tetap. Saya dapat mengumpulkan data, untuk mendapatkan sampel yang konstan atau memilih sub-set data yang sangat terperinci. Dengan kedua opsi tersebut saya akan kehilangan beberapa informasi dari dataset asli, yang dapat mengungkap pola yang berbeda.
  • Alih-alih mendekomposisi seri dalam siklus, saya bisa memberi makan model dengan seluruh dataset dan berharap untuk mengambil pola. Sebagai contoh, saya mengubah jam, hari kerja dan bulan dalam variabel kategori dan mencoba regresi berganda dengan hasil yang baik (R2 = 0,71)

Saya mempunyai ide bahwa teknik pembelajaran mesin seperti JST juga dapat memilih pola-pola ini dari deret waktu yang tidak rata, tetapi saya bertanya-tanya apakah ada yang pernah mencobanya, dan dapat memberikan saya beberapa saran tentang cara terbaik untuk merepresentasikan pola waktu dalam jaringan saraf.

berlipat ganda
sumber

Jawaban:

4

ARIMA, Exponential Smoothing, dan lainnya memang membutuhkan titik sampel dengan jarak yang sama. Saat Anda menulis, Anda dapat mengelompokkan data Anda (katakan dalam hitungan hari), tetapi saat Anda juga menulis, Anda akan kehilangan informasi. Selain itu, Anda mungkin berakhir dengan nilai yang hilang, jadi Anda harus menyalahkan, karena ARIMA tidak pandai menangani nilai yang hilang.

Salah satu alternatif, seperti yang Anda tulis lagi, adalah memberi waktu boneka palsu ke dalam kerangka regresi. Saya pribadi tidak terlalu suka boneka kategorikal, karena ini menyiratkan cutoff tajam antara kategori tetangga. Ini biasanya tidak terlalu alami. Jadi saya lebih suka melihat splines periodik dengan periodik yang berbeda. Pendekatan ini memiliki keuntungan berurusan dengan pengambilan sampel Anda yang tidak rata dan juga dengan nilai yang hilang.

Berhati - hatilah dalam menafsirkan . Kesesuaian dalam sampel terkenal menyesatkan sebagai ukuran akurasi perkiraan out-of-sample ( lihat di sini ). Saya berpendapat bahwa pemutusan antara kecocokan in-sample dan out-of-sample ini juga berarti bahwa tidak ada hubungan antara kecocokan in-sample dan seberapa baik model "memahami" data, bahkan jika minat Anda tidak terletak pada peramalan , tetapi hanya dalam pemodelan per se. Filosofi saya adalah jika Anda tidak dapat memperkirakan deret waktu dengan baik, Anda belum memahaminya dalam arti yang berarti.R2

Akhirnya, jangan berlebihan melakukan pemodelan. Hanya dengan melihat data Anda, jelas bahwa sesuatu terjadi pada bulan Juni, pada suatu hari di bulan Agustus dan di bulan September / Oktober. Saya sarankan Anda terlebih dahulu mencari tahu apa ini sesuatu dan memasukkannya ke dalam model Anda, misalnya, sebagai variabel penjelas (yang dapat Anda sertakan dalam ARIMAX jika Anda mau). Apa yang terjadi di sana jelas bukan musim.

Stephan Kolassa
sumber
0

Karena pertanyaan Anda dan jawaban yang bagus dari @Stephan Kolassa membahas ARIMA dan jaringan saraf pada khususnya, saya ingin menyebutkan bahwa Anda dapat memberikan forecastpaket dalam Rperjalanan - ia memiliki nnetarfungsi yang melatih jaringan umpan maju sederhana dengan 1 lapisan tersembunyi dan input yang tertinggal.

Mungkin Anda bisa mencoba sesuatu seperti:

  • ekstrak banyak fitur untuk setiap pengamatan Anda seperti hari dalam seminggu, hari dalam bulan, hari kerja / akhir pekan dll (hanya datetime yang disebutkan sebagai potensi ketergantungan dalam pertanyaan Anda sehingga itu sebabnya saya memasukkan ini - tetapi Anda dapat memasukkan semua hal yang mungkin Anda percaya bisa memengaruhi variabel minat Anda).
  • nilai-nilai lagged dari variabel yang Anda minati serta informasi datetime (seperti hari dalam seminggu dll) akan menjadi masukan Anda. Anda dapat memasukkan variabel datetime sebagai regressor eksternal ( xreg) misalnya.

dan prediksi nilai masa depan var of interest Anda berdasarkan input ini. Selain itu, Anda juga bisa memikirkan memasukkan mean yang diamati dan varians / penyimpangan pada setiap hari dari nilai yang ingin Anda prediksi. Ini berarti bahwa Anda harus terlebih dahulu memperkirakan mean dan varians yang diharapkan dengan misalnya ARIMA kemudian menambahkannya sebagai input tambahan untuk pendekatan yang disebutkan di atas.

hth.

davidski
sumber