Bisakah splines digunakan untuk prediksi?

20

Saya tidak dapat secara spesifik tentang sifat data karena ini adalah hak milik, tetapi anggaplah kami memiliki data seperti ini: Setiap bulan, beberapa orang mendaftar untuk suatu layanan. Kemudian, pada setiap bulan berikutnya, orang-orang tersebut dapat memutakhirkan layanan, menghentikan layanan atau menolak layanan (misalnya karena gagal membayar). Untuk kohort awal dalam data kami, kami memiliki sekitar 2 tahun data (24 bulan).

Jumlah orang yang bergabung setiap bulan adalah besar (dalam kisaran 100.000) dan jumlah yang melakukan salah satu dari tiga hal ini ada ribuan. Namun, kami tidak menggunakan data tingkat individu (yang akan menjadi jutaan baris) tetapi data dikumpulkan berdasarkan bulan dan kelompok (berapa proporsi masing-masing kelompok melakukan setiap hal setiap bulan).

Kami telah memodelkan data yang ada menggunakan multivariat adaptive regression splines (MARS) dan menemukan beberapa hasil menarik. Namun, saya khawatir menggunakan ini untuk memperkirakan atau memperkirakan ke masa depan. Kekhawatiran saya adalah karena prediksi ke masa depan harus di luar ruang sampel (dalam hal waktu) dan splines dapat menjadi tidak stabil untuk ekstrapolasi.

Apakah ini metode yang sah? Kekhawatiran apa yang ada dan dapat diatasi?

Peter Flom - Pasang kembali Monica
sumber
2
Tentu saja mereka dapat digunakan untuk prediksi, tetapi Anda harus memperhatikan cara menyetel model hyperparameters dengan benar. Pilihan fungsi spline (konstan, linier, kubik) juga menjadi perhatian penting. IIRC, fungsi spline linier dalam MARS biasanya digunakan, dan spline tingkat tinggi dihindari karena kekhawatiran ekstrapolasi / overfitting.
Sycorax berkata Reinstate Monica
1
Adakah sesuatu yang Anda khawatirkan secara khusus, yang akan membuat Anda meragukan metode yang telah Anda gunakan? Akurasi Anda tampak sangat rendah, atau sesuatu seperti itu? Sudahkah Anda mencoba metode lain? Bagaimana mereka membandingkan?
one_observation
1
@ Ahli Sosiologi Terutama bahwa mereka pada akhirnya akan sangat nilai-nilai baru karena simpul dan garis semua didasarkan pada nilai-nilai yang ada di masa lalu. Jadi, katakanlah, spline linier yang mengatakan "naik sebesar XXX untuk setiap tahun setelah 2014" akan didasarkan hanya pada data 2015 tetapi, jika diterapkan pada 2016, akan berlanjut ke arah yang sama.
Peter Flom - Pasang kembali Monica
3
@PeterFlom: Saya sebenarnya sangat bingung tentang pertanyaan Anda (splines sangat umum untuk prediksi) sampai saya membaca respons Anda terhadap Sophologist. Saya mengedit pertanyaan Anda untuk membantu menekankan apa yang menurut saya menjadi perhatian Anda. Silakan tinjau.
Cliff AB
2
@PeterFlom: anggap edit saya benar, apakah Anda memodelkan efek waktu dengan spline? Jika demikian, saya akan sangat khawatir. Namun, jika Anda memodelkan efek waktu dengan efek lag dan kovariat lainnya dengan splines, saya tidak akan melihat masalah?
Cliff AB

Jawaban:

15

Dari interpretasi saya atas pertanyaan, pertanyaan mendasar yang Anda tanyakan adalah apakah Anda dapat memodelkan waktu sebagai spline atau tidak.

f^(x)=saya=1nαsayaBsaya(x[saya])
αsayaBsayax[saya]
mSebuahx(0,x[saya]+csaya)

R

f^(x)=5+mSebuahx(0,x-5)+2mSebuahx(0,x-10)

10
f^(x)=10+2(x-10)=2x-10
5

Sekarang mari kembali ke seri waktu. Rangkaian waktu adalah kasus yang cukup istimewa dalam pembelajaran mesin. Mereka cenderung memiliki sedikit struktur, baik parsial in-variance atau salah satu dari banyak jenis substruktur, dan struktur ini dapat dieksploitasi. Tetapi diperlukan algoritma khusus yang dapat mengeksploitasi struktur ini, sayangnya splines tidak melakukan ini.

Ada beberapa hal yang saya sarankan Anda coba. Yang pertama adalah jaringan berulang. Jika deret waktu Anda tidak terlalu lama (dan tidak memiliki ketergantungan jangka panjang), Anda harus bisa menggunakan jaringan berulang vanila sederhana. Jika Anda ingin dapat memahami apa yang terjadi, Anda bisa menggunakan unit linear yang diperbaiki dengan bias sebagai fungsi aktivasi dan itu akan setara dengan melakukan pemodelan MARS pada subset dari deret waktu dan "memori" yang berulang pada jaringan saraf memegang. Akan sulit untuk menginterpretasikan bagaimana memori dikelola oleh internet, tetapi Anda harus mendapatkan beberapa ide bagaimana subruang sedang ditangani sehubungan dengan fungsi linier yang dihasilkan. Juga jika Anda memiliki fitur statis yang tidak termasuk dalam deret waktu, relatif mudah untuk menggunakannya di internet.

Jika deret waktu yang Anda miliki sangat panjang dan mungkin memiliki dependensi jangka panjang, saya sarankan menggunakan salah satu jaringan berulang yang terjaga keamanannya, seperti GRU atau LSTM.

Di sisi yang lebih klasik dari klasifikasi deret waktu, Anda dapat menggunakan model markov tersembunyi. Saya tidak akan melangkah lebih jauh ke dalam ini, karena saya tidak terbiasa dengan mereka.

Kesimpulannya, saya tidak akan merekomendasikan menggunakan splines karena dua alasan. Satu, itu tidak mampu menangani masalah ekstrapolasi yang rumit, yang tampaknya menjadi masalah yang Anda gambarkan. Dan kedua, splines tidak mengeksploitasi substruktur deret waktu yang sangat kuat dalam klasifikasi deret waktu.

Semoga ini membantu.

Armen Aghajanyan
sumber