Prediksi deret waktu menggunakan ARIMA vs LSTM

64

Masalah yang saya hadapi adalah memprediksi nilai deret waktu. Saya melihat satu seri waktu pada satu waktu dan berdasarkan misalnya 15% dari data input, saya ingin memprediksi nilai-nilai masa depannya. Sejauh ini saya telah menemukan dua model:

  • LSTM (memori jangka pendek; kelas jaringan saraf berulang)
  • ARIMA

Saya sudah mencoba keduanya dan membaca beberapa artikel tentang mereka. Sekarang saya mencoba untuk lebih memahami cara membandingkan keduanya. Apa yang saya temukan sejauh ini:

  1. LSTM bekerja lebih baik jika kita berurusan dengan sejumlah besar data dan data pelatihan yang cukup tersedia, sementara ARIMA lebih baik untuk kumpulan data yang lebih kecil (apakah ini benar?)
  2. ARIMA membutuhkan serangkaian parameter (p,q,d)yang harus dihitung berdasarkan data, sedangkan LSTM tidak memerlukan pengaturan parameter tersebut. Namun, ada beberapa hiperparameter yang perlu kita sesuaikan dengan LSTM.
  3. EDIT: Satu perbedaan utama antara keduanya yang saya perhatikan saat membaca artikel yang bagus di sini , adalah bahwa ARIMA hanya dapat bekerja dengan baik pada seri waktu stasioner (di mana tidak ada musim, tren, dll.) Dan Anda harus mengurusnya jika ingin menggunakan ARIMA

Selain properti yang disebutkan di atas, saya tidak dapat menemukan poin atau fakta lain yang dapat membantu saya memilih model terbaik. Saya akan sangat berterima kasih jika seseorang dapat membantu saya menemukan artikel, makalah atau hal-hal lain (sejauh ini tidak beruntung, hanya beberapa pendapat umum di sana-sini dan tidak ada yang didasarkan pada eksperimen.)

Saya harus menyebutkan bahwa awalnya saya berurusan dengan data streaming, namun untuk saat ini saya menggunakan dataset NAB yang mencakup 50 dataset dengan ukuran maksimum 20k titik data.

ahajib
sumber
Maukah Anda berbagi kode LSTM? DAN TERIMAKASIH.
BANTUAN

Jawaban:

25

Pernyataan 1 benar, pernyataan 2 benar, tetapi membutuhkan elaborasi, dan pernyataan 3 salah untuk ARIMA musiman:

Berikut ini mungkin mengarahkan Anda ke arah yang benar, tetapi mudah-mudahan Anda akan mendapatkan beberapa jawaban lagi dengan lebih mendalam di arena LSTM.

Anda menyebutkan bahwa Anda telah mencoba kedua algoritma dan bahwa Anda hanya mencoba untuk mencari tahu mana yang lebih baik, yang membuat saya berpikir Anda mungkin memiliki lebih banyak masalah dengan proses ilmu data dan validasi silang daripada dengan spesifik model.

Rangkaian waktu secara umum:

Rangkaian waktu, secara umum, sulit diperkirakan. Jika mereka mudah diperkirakan maka semua ilmuwan data akan kaya, setelah secara akurat memperkirakan nilai semua stok. Kenyataannya adalah bahwa dana lindung nilai, rata-rata, tidak mengungguli pasar dan bahwa peramalan time series biasanya sangat buruk dan hanya berlaku untuk jangka waktu yang sangat singkat. Masalah utama adalah bahwa ada banyak kebisingan, ada banyak pengaruh tersembunyi, model terlalu sederhana, influencer tidak berperilaku seperti yang kita pikirkan, interaksi antara linearitas dan nonlinieritas halus dan membingungkan, ... ad infinitum.

ARIMA

Anda salah dalam penilaian Anda bahwa ARIMA membutuhkan seri waktu stasioner untuk diperkirakan. ARIMA non-musiman memiliki tiga nilai input untuk membantu mengendalikan perataan, stasioner, dan peramalan ARIMA (p, d, q), di mana:

  • p adalah jumlah istilah autoregresif,
  • d adalah jumlah perbedaan nonseasonal yang diperlukan untuk stasioneritas, dan
  • q adalah jumlah kesalahan prakiraan keterlambatan dalam persamaan prediksi.

Sebaliknya ARIMA musiman memiliki enam nilai input ARIMA (p, d, q, P, D, Q), di mana:

  • P adalah jumlah istilah autoregresif musiman,
  • D adalah jumlah perbedaan musiman, dan
  • Q adalah jumlah istilah rata-rata bergerak musiman.

Tunduk pada pernyataan kualifikasi di atas, saya sarankan bermain dengan ARIMA musiman untuk merasakan seluk-beluk yang terlibat dalam smoothing, de-seasoning, de-trending, de-noiseing, dan peramalan.

LSTM

Saya tidak cukup tahu tentang LSTM untuk menambahkan banyak di sini. Saya akan menambahkan bahwa bendera merah cenderung dinaikkan ketika seseorang memulai latihan ilmu data dengan pembelajaran yang mendalam. Saya sarankan belajar sebanyak mungkin menggunakan ARIMA dan kemudian menerapkan beberapa keahlian ARIMA Anda untuk membantu Anda mempelajari LSTM. Jaringan saraf bisa menjadi alat yang sangat kuat, tetapi mereka:

  • bisa memakan waktu lama untuk berjalan,
  • sering membutuhkan lebih banyak data untuk dilatih daripada model lain, dan
  • memiliki banyak parameter input untuk disetel.

Validasi silang dan model perbandingan:

Rangkaian waktu menyenangkan karena semua data pelatihan biasanya dapat diubah menjadi set pelatihan pembelajaran yang diawasi. Sekali hanya dapat mengambil deret waktu dan memutar kembali waktu. Yaitu ... pilih satu titik waktu dan berpura-puralah Anda tidak memiliki data tambahan, kemudian buat perkiraan dan lihat seberapa baik Anda melakukannya. Anda dapat berbaris melalui rangkaian waktu melakukan ini kali untuk mendapatkan penilaian kinerja model Andan dan untuk membandingkan model sambil mengambil tindakan pencegahan yang diperlukan untuk mencegah overfitting .

Semoga ini bisa membantu dan semoga berhasil!

AN6U5
sumber
Terima kasih atas tanggapan Anda. Catatan Anda tentang ARIMA sangat membantu dan saya mencoba mengingatnya. Dalam hal validasi silang dan membandingkan dua model, untuk dataset saat ini, dengan menggunakan berbagai parameter saya dapat mengetahui algoritma mana yang berkinerja lebih baik dan seterusnya. Masalahnya adalah bahwa non-set data tersebut dapat mewakili data nyata (streaming data) dan itulah mengapa saya pikir akan lebih baik untuk meminta orang lain di bidang ilmu data dan pembelajaran mesin untuk berbagi pemikiran dan pengalaman mereka.
ahajib
Tetapi jika Anda memiliki data streaming maka Anda dapat mengubahnya menjadi pengujian data dengan menyimpan aliran. Bagian yang menyenangkan tentang rangkaian waktu adalah bahwa Anda selalu dapat membuat kumpulan data pengujian dari kumpulan data apa pun. Anda hanya perlu menyimpan beberapa data dan kemudian memutar kembali waktu.
AN6U5
Saya tahu ini agak tua tetapi saya harus tidak setuju di sini. D, parameter D untuk membedakan seperti @ AN6U5 mengatakan, tetapi alasan untuk melakukan perbedaan ini di tempat pertama adalah untuk menegakkan stasioneritas pada masalah. Pada kenyataannya, salah satu interpretasi model ARIMA adalah hanya regresi linier dengan persyaratan untuk menegakkan stasioneritas pada deret waktu.
Ryan
6

Menambahkan ke tanggapan @ AN6U5.

Dari sudut pandang teori, makalah ini menunjukkan bahwa RNN adalah penduga universal. Saya belum membaca makalah secara detail, jadi saya tidak tahu apakah buktinya juga bisa diterapkan pada LSTM, tapi saya kira begitu. Masalah terbesar dengan RNN secara umum (termasuk LSTM) adalah mereka sulit untuk dilatih karena eksplorasi gradien dan masalah menghilang gradien. Batas praktis untuk LSTM tampaknya sekitar 200 ~ langkah dengan penurunan gradien standar dan inisialisasi acak. Dan seperti yang disebutkan, secara umum untuk setiap model pembelajaran yang mendalam untuk bekerja dengan baik, Anda memerlukan banyak data dan tumpukan penyetelan.

Model ARIMA lebih terbatas. Jika sistem dasar Anda terlalu kompleks maka tidak mungkin untuk mendapatkan kecocokan yang baik. Tetapi di sisi lain, jika Anda mendasari model cukup sederhana, itu jauh lebih efisien daripada pendekatan pembelajaran yang mendalam.

Louis T
sumber
2

Model ARIMA adalah linier dan model LSTM adalah nonlinier. Beberapa model deret waktu nonlinear parametrik lain yang telah dipelajari oleh para ahli statistik adalah Threshold Autoregressive Models (TAR) dan Smooth Transition Autoregressive Models (STAR). Paket R tsDyn mengimplementasikan model-model ini.

Saya bertanya-tanya bagaimana model STAR vs LSTM.

Fortranner
sumber
2

Saya telah sampai pada kesimpulan yang sama seperti Anda dan orang lain, peramalan tradisional masih mungkin yang paling berlaku dan mungkin dapat diandalkan untuk deret waktu nilai numerik. Ada beberapa pendarahan dalam pembelajaran mendalam dalam diskusi di mana deret waktu untuk nilai numerik digabungkan menjadi pembelajaran mendalam, di mana pembelajaran mendalam (saat ini) berlaku untuk tantangan modern dalam pengenalan pola untuk gambar, suara, teks bersih, atau deteksi anomali. Saya sering mendapatkan hasil yang baik dengan VAR / VECM untuk data transaksional harian, yang mungkin dapat diterapkan pada kasus penggunaan pemrosesan sinyal Anda.

Starbucks
sumber
1

Sebagai kasus yang ekstrem, saya memiliki kesempatan untuk belajar tentang perkiraan Forex (Nilai Tukar) dan secara intensif membandingkan kinerja LSTM, windowed-MLP dan ARIMA. Seperti banyak artikel katakan, seri waktu Forex dekat dengan seri jalan acak (benar-benar tidak stasioner). Tidak satu pun dari algoritma ini dapat memprediksi kurs spot hari berikutnya. Misalnya, jika tidak ada (atau sedikit) perubahan, maka itu akan mempertahankan nilai saat ini dan itu terlihat pas. Namun, jika ada perubahan mendadak (substansial) dalam kurs spot besok, maka selalu gagal untuk memprediksi. Masalahnya adalah bahwa tidak ada yang dapat dipelajari dari data pelatihan (katakanlah, sejarah nilai tukar 10 tahun terakhir) apakah cukup besar atau tidak, karena itu benar-benar acak (mungkin, karena sentimen para pedagang pertukaran ...) .

Faktanya, LSTM dengan lag '1' saja, atau ARIMA dengan (1,0,0) akan melakukan yang terbaik karena menyimpan data dengan lag lebih dari 1 kali tidak membantu sama sekali. Untuk seri waktu seperti ini, saya akan mengatakan, dalam hal kinerja pelacakan, 1) ARIMA, 2) LSTM, 3) MLP. Komentar terakhir ... MLP dengan parameter ekonomi makro / mikro (katakanlah, perbedaan PDB, tingkat obligasi, harga minyak mentah, indeks dolar, dll) karena fitur tambahan tidak berfungsi sama sekali juga.

East Chun
sumber