Pembelajaran tambahan untuk model seri waktu LOESS

9

Saat ini saya sedang mengerjakan beberapa data deret waktu, saya tahu saya bisa menggunakan model LOESS / ARIMA.

Data ditulis ke vektor yang panjangnya 1000, yang merupakan antrian, diperbarui setiap 15 menit,

Dengan demikian data lama akan muncul sementara data baru mendorong dalam vektor.

Saya dapat menjalankan kembali seluruh model pada penjadwal, misalnya melatih ulang model setiap 15 menit, yaitu, Gunakan seluruh nilai 1000 untuk melatih model LOESS, Namun sangat tidak efisien, karena setiap kali hanya satu nilai yang disisipkan sementara 999 vlaues lainnya masih sama seperti terakhir kali.

Jadi bagaimana saya bisa mencapai kinerja yang lebih baik?

Terimakasih banyak

zhang
sumber
3
Apa itu "model LOESS / ARIMA"? Apakah maksud Anda tren waktu nonlinear dengan kesalahan ARIMA di mana tren nonlinier diperkirakan menggunakan LOESS?
Rob Hyndman
maaf maksud saya model LOESS atau ARIMA. misalnya saya menggunakan LOESS untuk menemukan residual sebagai: residual (loess (x ~ time)). karena data x adalah vektor dengan nilai 1000, yang diperbarui setiap 15 menit. Bagaimana saya bisa mendapatkan residu secara efisien, tetapi tidak menjalankan kembali seluruh datset sebagai input setiap kali? karena hanya 1 pembaruan nilai setiap kali, nilai 999 lainnya masih sama dengan yang terakhir kali.
zhang
salah satu metode yang mungkin, mungkin menggunakan nilai 1000 pertama untuk memprediksi nilai 1000 berikutnya (meskipun LOESS hanya mendukung prediksi 4 nilai), kemudian menghitung residual sebagai selisih antara nilai aktual dan nilai prediksi yang sesuai. Kemudian latih kembali model setiap nilai 1000 Namun, ini bukan model LOESS asli yang saya inginkan sama sekali :-(
zhang

Jawaban:

1

Biarkan saya merumuskan kembali ini menjadi sesuatu yang lebih akrab bagi saya. ARIMA adalah pendekatan analog ke PID. Saya tidak terpisahkan. MA adalah P. AR dapat dinyatakan sebagai persamaan perbedaan yang merupakan istilah D. LOESS adalah analog ke kuadrat pas (benar-benar kakak teknologi tinggi).

Jadi jika saya ingin meningkatkan model urutan kedua (PID) apa yang bisa dilakukan?

  • Pertama, saya bisa menggunakan Filter Kalman untuk memperbarui model dengan satu informasi baru.
  • Saya juga bisa melihat sesuatu yang disebut "gradient boosted trees". Dengan menggunakan analognya, saya akan membuat model ARIMA kedua yang inputnya adalah input mentah yang diumpankan ke yang pertama, ditambah dengan kesalahan yang pertama.
  • Saya akan mempertimbangkan melihat PDF dari kesalahan untuk beberapa mode. Jika saya bisa mengelompokkan kesalahan maka saya mungkin ingin membagi model, atau menggunakan model Campuran untuk memisahkan input menjadi sub-model. Submodels mungkin lebih baik dalam menangani fenomenologi lokal lebih baik daripada model skala besar tunggal.

Salah satu pertanyaan yang gagal saya tanyakan adalah "apa arti kinerja?". Jika kita tidak memiliki ukuran kebaikan yang dinyatakan dengan jelas maka tidak ada cara untuk mengetahui apakah metode kandidat "membaik". Sepertinya Anda menginginkan pemodelan yang lebih baik, waktu komputasi yang lebih singkat, dan penggunaan informasi yang lebih efisien. Memiliki ephemeris tentang data aktual juga dapat menginformasikan hal ini. Jika Anda memodelkan angin, maka Anda bisa tahu di mana harus mencari model augmentasi, atau menemukan transformasi untuk data Anda yang berguna.

EngrStudent
sumber
1

Ini adalah pertanyaan yang berbeda tergantung pada apakah Anda menggunakan loess atau model ARIMA. Saya akan menjawab hanya pertanyaan loess untuk saat ini, karena saya menduga ada sedikit efisiensi yang mungkin dalam kasus ARIMA selain mungkin memiliki nilai awal yang baik.

Model loess bekerja dengan mencocokkan regresi tertimbang ke himpunan bagian data yang berbeda. Hanya sebagian data yang digunakan untuk setiap kecocokan. Jadi setiap kali Anda mereparasi model yang telah menurunkan satu titik data di satu ujung dan menambahkan yang lain di ujung yang berlawanan, Anda secara teknis hanya perlu menyesuaikan dengan regresi lokal yang menggunakan titik pertama dan terakhir. Semua regresi lokal di antara keduanya akan sama. Tepatnya berapa banyak dari regresi lokal yang tidak terpengaruh ini yang akan tergantung pada parameter smoothing Anda di loess.

Anda dapat meretas paket apa pun yang Anda gunakan agar sesuai dengan model Anda sehingga dapat mengambil sebagian besar regresi lokal dari kecocokan sebelumnya, dan hanya cocok dengan yang dibutuhkan pada awal dan akhir data.

Namun, bagi saya ini hanya layak dilakukan jika biaya dalam waktu pemrograman tambahan secara material lebih kecil daripada biaya waktu komputer untuk menyesuaikan model dari awal setiap 15 menit. Dengan hanya 1000 titik data tentu bukan hal yang besar untuk menyesuaikan model dari awal setiap kali.

Peter Ellis
sumber