Apakah mungkin untuk mengotomatisasi perkiraan seri waktu?

18

Saya ingin membangun sebuah algoritma yang akan dapat menganalisis deret waktu dan "secara otomatis" memilih metode peramalan tradisional / statiskal terbaik (dan parameternya) untuk data deret waktu yang dianalisis.

Mungkinkah melakukan hal seperti ini? Jika ya, dapatkah Anda memberi saya beberapa tips tentang bagaimana hal ini dapat didekati?

StatsNewbie123
sumber
3
Tidak, ini tidak dapat dicapai secara wajar. Seringkali, tidak ada data yang cukup untuk membedakan antara dua model yang masuk akal, apalagi semua model yang mungkin. Mencapai model terbaik akan membutuhkan bahwa fisika dikenal dalam istilah absolut, dan sangat sering asumsi pemodelan bahkan tidak diketahui, dan / atau tidak diuji / tidak dapat diuji.
Carl
3
Tidak. Tidak ada cara untuk menentukan model mana yang terbaik. Python tidak relevan dalam diskusi ini. Meskipun demikian ada upaya dengan hasil yang baik. Misalnya proyek github.com/facebook/prophet . Ini juga memiliki pengikatan Python.
Cagdas Ozgenc
3
Saya memberikan suara untuk tetap terbuka karena saya pikir ini adalah pertanyaan yang masuk akal - bahkan jika jawabannya "tidak". Saya sarankan menghapus python dari judul, karena itu tidak relevan atau terutama pada topik di sini.
mkt - Reinstate Monica
1
Saya telah menghapus python dari judul seperti yang disarankan. Terima kasih atas jawaban anda
StatsNewbie123
2
Lihat teorema "tanpa makan siang gratis".
AdamO

Jawaban:

20

Pertama, Anda perlu mencatat bahwa pendekatan yang digariskan oleh IrishStat khusus untuk model ARIMA, bukan untuk set model umum.

Untuk menjawab pertanyaan utama Anda, "Apakah mungkin untuk mengotomatisasi perkiraan rangkaian waktu?":

Ya itu. Di bidang peramalan permintaan saya, sebagian besar paket peramalan komersial melakukannya. Beberapa paket sumber terbuka juga melakukannya, terutama Rob Hyndman auto.arima () (peramalan ARIMA otomatis) dan ETS () (peramalan eksponensial otomatis) berfungsi dari paket Prakiraan sumber terbuka di R lihat di sini untuk perincian tentang dua fungsi ini . Ada juga implementasi Python dari auto.arima yang disebut Piramida , meskipun menurut pengalaman saya itu tidak setua paket R.

Baik produk komersial yang saya sebutkan dan paket open source yang saya sebutkan bekerja berdasarkan ide menggunakan kriteria informasi untuk memilih perkiraan terbaik: Anda cocok dengan banyak model, dan kemudian pilih model dengan AIC, BIC, AICc terendah, dll .... (biasanya ini dilakukan sebagai pengganti dari validasi sampel).

Namun ada peringatan utama: semua metode ini bekerja dalam satu keluarga model. Mereka memilih model terbaik di antara seperangkat model ARIMA, atau model terbaik di antara serangkaian model pemulusan eksponensial.

Jauh lebih sulit untuk melakukannya jika Anda ingin memilih dari keluarga model yang berbeda, misalnya jika Anda ingin memilih model terbaik dari ARIMA, perataan eksponensial dan metode Theta. Secara teori, Anda dapat melakukannya dengan cara yang sama seperti yang Anda lakukan dalam satu keluarga model, yaitu dengan menggunakan kriteria informasi. Namun dalam praktiknya, Anda perlu menghitung AIC atau BIC dengan cara yang persis sama untuk semua model yang dipertimbangkan, dan itu merupakan tantangan yang signifikan. Mungkin lebih baik menggunakan validasi silang seri waktu , atau keluar dari validasi sampel daripada kriteria informasi, tetapi itu akan jauh lebih intensif secara komputasi (dan membosankan untuk kode).

Paket Nabi Facebook juga mengotomatiskan pembuatan ramalan berdasarkan Model Aditif Umum. Lihat di sini untuk detailnya . Namun Nabi hanya cocok untuk satu model tunggal, meskipun model yang sangat fleksibel dengan banyak parameter. Asumsi tersirat Nabi adalah bahwa GAM adalah "satu-satunya model untuk memerintah mereka semua", yang mungkin tidak bisa dibenarkan secara teoretis tetapi sangat pragmatis dan berguna untuk skenario dunia nyata.

Peringatan lain yang berlaku untuk semua metode yang disebutkan di atas: Mungkin Anda ingin melakukan peramalan deret waktu otomatis karena Anda ingin meramalkan deret waktu banyak, terlalu banyak untuk dianalisis secara manual. Kalau tidak, Anda bisa melakukan eksperimen sendiri dan menemukan model terbaik sendiri. Anda harus ingat bahwa pendekatan peramalan otomatis tidak akan pernah menemukan model terbaik untuk setiap seri waktu - ini akan memberikan model rata-rata yang cukup baik di atas semua seri waktu, tetapi masih mungkin bahwa beberapa seri waktu tersebut akan memiliki model yang lebih baik daripada yang dipilih oleh metode otomatis. Lihat posting iniuntuk contoh ini. Sederhananya, jika Anda akan menggunakan peramalan otomatis - Anda harus mentolerir prakiraan "cukup baik" alih-alih perkiraan terbaik untuk setiap rangkaian waktu.

Skander H. - Pasang kembali Monica
sumber
Terima kasih atas jawaban yang berwawasan luas. Jujur ide awal saya ketika mengajukan pertanyaan ini adalah untuk dapat memilih dari keluarga model yang berbeda.
StatsNewbie123
Bagaimana jika algoritma itu diterapkan pada domain yang lebih spesifik, seperti peramalan bisnis (untuk perencanaan produksi dan manajemen inventaris misalnya)? Apakah Anda pikir itu dapat mencapai hasil yang lebih baik?
StatsNewbie123
2
@ JoanaClaudino ya itu akan lebih mudah - itulah inti dari paket peramalan permintaan komersial. Tetapi itu lebih mudah karena biasanya ketika Anda membatasi diri Anda pada satu domain bisnis tertentu, Anda dapat membatasi diri pada satu keluarga model tertentu (rangkaian waktu yang berasal dari domain bisnis yang sama akan memiliki karakteristik serupa dalam hal musiman, kepadatan data, dll ... .hanya aman untuk berasumsi bahwa satu keluarga akan cocok untuk mereka semua)
Skander H. - Reinstate Monica
Oke, saya mengerti sekarang. Sekali lagi terima kasih atas bantuannya.
StatsNewbie123
11

Pendekatan yang saya sarankan mencakup model yang jauh lebih umum daripada ARIMA karena mencakup potensi boneka musiman yang dapat berubah dari waktu ke waktu, beberapa tingkat, beberapa tren, parameter yang dapat berubah dari waktu ke waktu dan bahkan varian kesalahan yang dapat berubah dari waktu ke waktu. Keluarga ini lebih tepatnya disebut model ARMAX tetapi untuk transparansi lengkap tidak mengecualikan varian (jarang) yang memiliki struktur multiplikasi.

Anda meminta tip dan saya percaya ini mungkin bagus untuk Anda mulai.

Saya menyarankan agar Anda menulis kode untuk mengikuti / meniru alur / alur kerja ini. "Model terbaik" dapat ditemukan dengan mengevaluasi kriteria yang Anda tentukan ... itu bisa MSE / AIC dari data yang dipasang atau bisa juga MAPE / SMAPE dari data yang ditahan atau kriteria apa pun yang Anda pilih.

Berhati-hatilah karena perincian dari masing-masing langkah ini bisa sangat sederhana jika Anda tidak mengetahui beberapa persyaratan / tujuan / kendala spesifik dari analisis deret waktu TETAPI itu bisa (seharusnya!) Lebih rumit jika Anda memiliki pemahaman yang lebih dalam / belajar / menghargai kompleksitas / peluang yang ada dalam analisis deret waktu yang menyeluruh.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Saya telah diminta untuk memberikan arahan lebih lanjut tentang bagaimana seseorang harus mengotomatiskan pemodelan seri waktu (atau pemodelan secara umum) /stats//search?q=peeling+an+onion berisi beberapa panduan saya tentang "mengupas bawang" dan tugas-tugas terkait.

AUTOBOX sebenarnya merinci dan menunjukkan langkah-langkah sementara karena membentuk model yang berguna dan bisa menjadi guru yang berguna dalam hal ini. Seluruh gagasan ilmiah adalah untuk "menambahkan apa yang tampaknya dibutuhkan" dan "menghapus apa yang tampaknya kurang bermanfaat". Ini adalah proses berulang yang disarankan oleh Box dan Bacon di masa lalu.

Model harus cukup kompleks (cukup mewah) tetapi tidak terlalu kompleks (mewah). Dengan asumsi bahwa metode sederhana bekerja dengan masalah kompleks tidak konsisten dengan metode ilmiah setelah Roger Bacon dan banyak pengikut Bacon. Seperti yang pernah dikatakan Roger Bacon dan saya sering diparafrasekan: Melakukan sains berarti mencari pola yang berulang. Untuk mendeteksi anomali adalah mengidentifikasi nilai-nilai yang tidak mengikuti pola berulang. Karena siapa pun yang tahu cara-cara Alam akan lebih mudah melihat penyimpangannya dan, di sisi lain, siapa pun yang tahu penyimpangannya akan lebih akurat menggambarkan jalannya. Seseorang belajar aturan dengan mengamati ketika aturan saat ini gagal. Dalam percikan pf Bacon dengan mengidentifikasi ketika "model / teori terbaik" yang diidentifikasi saat ini tidak memadai, seseorang kemudian dapat beralih ke "representasi yang lebih baik"

Dalam kata-kata saya "Tukey mengusulkan Analisis Data Eksplorasi (EDA) yang menyarankan skema penyempurnaan model berdasarkan kekurangan model terbukti yang disarankan oleh data". Ini adalah jantung dari AUTOBOX dan sains. EDA adalah untuk melihat apa yang dapat disampaikan oleh data di luar pemodelan formal atau tugas pengujian hipotesis.

Tes lakmus dari program pemodelan otomatis cukup sederhana. Apakah ini memisahkan sinyal dan noise tanpa terlalu pas? Bukti empiris menunjukkan bahwa ini dapat dan telah dilakukan. Akurasi peramalan sering menyesatkan karena masa depan tidak bertanggung jawab atas masa lalu dan tergantung pada asal mana Anda memilih hasil dapat dan memang bervariasi.

IrishStat
sumber
Terima kasih banyak. Jawaban Anda sangat membantu!
StatsNewbie123
Terima kasih, IrishStat. Ini berwawasan luas. Apakah kita pernah dibenarkan untuk menjaga parameter sebagai lawan dari "hapus parameter", meskipun parameter tidak signifikan secara statistik?
ColorStatistics
1
Iya. jika itu memberi Anda "jawaban yang lebih menyenangkan". Koefisien kemiringan yang tidak berbeda dari 0,0 dapat memberikan perkiraan yang lebih realistis (jika tidak signifikan secara statistik), Jika tidak membawa kelebihan koefisien tidak logis dan menyebabkan peningkatan ketidakpastian dalam perkiraan varians. Beberapa penulis tidak dapat berurusan dengan tes kebutuhan dan kecukupan secara membabi buta / naif berasumsi bahwa identifikasi model adalah proses 1 langkah sementara Box dan Jenkins (dan semua orang lain!) Prihatin dengan membuat model serumit yang diperlukan tetapi tidak terlalu rumit ..baca Albert E., JW Tukey dkk untuk informasi lebih lanjut tentang ini.
IrishStat
3
"Pendekatan peramalan otomatis yang disarankan ini akan menemukan model terbaik untuk setiap seri waktu dengan menyesuaikan bentuk model, yaitu menyesuaikannya seperti setelan yang disesuaikan." Itu pernyataan yang cukup kuat - jika akurat, itu berarti pendekatan ini akan memenangkan M3, kompetisi M4 jatuh. Benarkah?
Skander H.
1
@ joana-claudino Saya sangat tertarik dengan proyek ISEG Anda karena saya juga tertarik untuk mengembangkan versi Python dari prosedur yang saya sarankan. Ini tentu saja akan keluar dari situs SE.
IrishStat