Menguji stabilitas dalam rangkaian waktu

9

Apakah ada metode standar (atau terbaik) untuk pengujian ketika rangkaian waktu tertentu telah stabil?


Beberapa motivasi

Saya memiliki sistem dinamis stokastik yang menghasilkan nilai pada setiap langkah waktu . Sistem ini memiliki beberapa perilaku transien sampai waktu dan kemudian stabil di sekitar beberapa nilai rata-rata dengan beberapa kesalahan. Tak satu pun dari , , atau kesalahan yang diketahui oleh saya. Saya bersedia membuat beberapa asumsi (seperti kesalahan Gaussian sekitar t N t x t x x xttNtxtxxmisalnya) tetapi semakin sedikit asumsi a priori yang saya butuhkan, semakin baik. Satu-satunya hal yang saya tahu pasti, adalah bahwa hanya ada satu titik stabil yang disatukan oleh sistem, dan fluktuasi di sekitar titik stabil jauh lebih kecil daripada fluktuasi selama periode transien. Prosesnya juga monotonik, saya bisa berasumsi bahwa mulai mendekati dan naik menuju (mungkin overshooting sedikit sebelum menstabilkan sekitar ). 0 x x x00xx

The data akan datang dari simulasi, dan saya perlu tes stabilitas sebagai syarat berhenti untuk simulasi saya (karena saya hanya tertarik pada periode transient).xt

Pertanyaan yang tepat

Diberikan hanya akses ke nilai waktu untuk beberapa terbatas , adakah metode untuk mengatakan dengan akurasi yang masuk akal bahwa sistem dinamis stokastik telah stabil di sekitar titik ? Poin bonus jika tes juga mengembalikan , , dan kesalahan sekitar . Namun, ini tidak penting karena ada cara sederhana untuk mengetahui hal ini setelah simulasi selesai. T x x t x x0...xTTxxtx


Pendekatan naif

Pendekatan naif yang pertama kali muncul di pikiran saya (yang saya lihat digunakan sebagai kondisi menang untuk beberapa jaringan saraf, misalnya) adalah memilih untuk parameter dan , maka jika untuk timesteps terakhir tidak ada dua poin dan sedemikian rupa sehingga maka kita menyimpulkan bahwa kita telah stabil. Pendekatan ini mudah, tetapi tidak terlalu ketat. Ini juga memaksa saya untuk menebak nilai dan seharusnya.E TTETx x - x > E T Exxxx>ETE

Sepertinya harus ada pendekatan yang lebih baik yang melihat kembali sejumlah langkah di masa lalu (atau mungkin entah bagaimana diskon data lama), menghitung kesalahan standar dari data ini, dan kemudian menguji apakah untuk beberapa langkah langkah lain (atau yang lain skema diskon) deret waktu belum di luar rentang kesalahan ini. Saya memasukkan strategi yang agak kurang naif namun tetap sederhana sebagai jawaban .


Setiap bantuan, atau referensi ke teknik standar sangat dihargai.

Catatan

Saya juga mengirim pertanyaan ini apa adanya ke MetaOptimize dan dalam deskripsi yang lebih simulasi-rasa untuk Ilmu Komputasi .

Artem Kaznatcheev
sumber
Sudahkah Anda menemukan solusi yang jelas? Saya tertarik pada pertanyaan yang sama tetapi semua jawaban tidak meyakinkan.
Herman Toothrot
1
@ user4050 sayangnya, saya belum. Saya pikir itu sebenarnya pertanyaan yang sangat luas dan ada banyak teknik yang lebih baik di beberapa domain dan lebih buruk di yang lain.
Artem Kaznatcheev

Jawaban:

6

Komentar singkat ini jauh dari jawaban lengkap, hanya beberapa saran:

  • jika Anda memiliki dua periode waktu di mana perilaku berbeda, maksud saya berbeda baik perbedaan dalam parameter model (tidak relevan dalam situasi khusus ini), mean atau varians atau karakteristik lain yang diharapkan dari objek time-series ( dalam kasus Anda ), Anda dapat mencoba metode apa pun yang memperkirakan waktu (interval) perubahan struktural (atau epidemi) .xt
  • Di R ada strucchange perpustakaan untuk perubahan struktural dalam model regresi linier. Meskipun ini terutama digunakan untuk menguji dan memantau perubahan dalam parameter regresi linier, beberapa statistik dapat digunakan untuk perubahan struktural umum dalam deret waktu.
Dmitrij Celov
sumber
Tidak adanya perubahan outlier / level / perubahan tren DAN non-akuntansi untuk korelasi serial dari setiap keterlambatan dalam model residual adalah bahan yang sering menyebabkan tes F standar untuk diterapkan secara salah sehingga perawatan harus diambil (seperti yang Anda sarankan!).
IrishStat
@IrishStat, seperti yang Anda lihat dari posting saya, saya tidak menyarankan untuk menggunakan model regresi linier, saya hanya mencatat bahwa itu mungkin memiliki bentuk statistik yang serupa (CUMSUM atau apa pun, karena yang terakhir diterapkan pada residu model, yang jelas adalah objek deret waktu) dengan (mungkin) distribusi pembatas berbeda yang bertanggung jawab atas autokorelasi (dapat diuji) dan bahwa jika Anda mau, Anda dapat melakukan penyesuaian outlier (juga dapat diuji) sebelum pengujian lebih lanjut. Hanya satu-satunya perpustakaan R yang saya tahu yang berfungsi dengan perubahan struktural.
Dmitrij Celov
Saya mulai menyukai jawaban ini semakin banyak. Apakah Anda memiliki saran untuk referensi yang baik (lebih disukai makalah survei terbaru) untuk beberapa metode umum memperkirakan waktu perubahan struktural?
Artem Kaznatcheev
4

Ketika saya membaca pertanyaan Anda "dan fluktuasi di sekitar titik stabil jauh lebih kecil daripada fluktuasi selama periode transien" yang saya dapatkan dari itu adalah permintaan untuk mendeteksi kapan dan jika varians kesalahan telah berubah dan jika demikian kapan! Jika itu adalah tujuan Anda, maka Anda dapat mempertimbangkan untuk meninjau karya atau R. Tsay "pencilan, Perubahan Level, dan Perubahan Varians dalam Rangkaian Waktu", Jurnal Forecasting Vol 7, 1-20 (1988). Saya telah melakukan banyak pekerjaan di bidang ini dan merasa sangat produktif dalam menghasilkan analisis yang baik. Pendekatan lain (ols / analisis regresi linier misalnya) yang mengasumsikan pengamatan independen dan tidak ada Pencilan Pulsa dan / atau tidak ada perubahan level atau tren waktu lokal dan parameter invarian waktu tidak cukup menurut saya.

IrishStat
sumber
1

Saya lebih memikirkan pertanyaan dan berpikir saya akan memberikan sedikit peningkatan pendekatan naif sebagai jawaban dengan harapan bahwa orang tahu ide-ide lebih lanjut ke arah itu. Ini juga memungkinkan kita untuk menghilangkan kebutuhan untuk mengetahui ukuran fluktuasi.


Cara termudah untuk mengimplementasikannya adalah dengan dua parameter . Biarkan y t = x t + 1 - x t menjadi perubahan dalam rangkaian waktu antara timestep t dan t + 1 . Ketika seri stabil di sekitar x , y akan berfluktuasi di sekitar nol dengan beberapa kesalahan standar. Di sini kita akan mengasumsikan bahwa kesalahan ini normal.(T,α)yt=xt+1-xttt+1xy

Ambil yang terakhir , y t 's dan cocok Gaussian dengan keyakinan α menggunakan fungsi seperti Matlab normfit . Kesesuaian akan memberi kita rata-rata μ dengan kesalahan kepercayaan α pada rata-rata E μ dan standar deviasi σ dengan kesalahan yang sesuai E σ . Jika 0 ( μ - E μ , μ + E μ ) , maka Anda dapat menerima. Jika Anda ingin ekstra yakin, maka Anda juga dapat renormalize yang y t s dengan σTytαμαEμσEσ0(μ-Eμ,μ+Eμ)ytσAnda menemukan (sehingga Anda sekarang memiliki standar deviasi ) dan menguji dengan tes Kolmogorov-Smirnov pada tingkat kepercayaan α .1α


Keuntungan dari metode ini adalah bahwa tidak seperti pendekatan naif, Anda tidak perlu lagi tahu apa-apa tentang besarnya fluktuasi termal di sekitar rata-rata. Batasannya adalah bahwa Anda masih memiliki parameter sewenang-wenang , dan kami harus mengasumsikan distribusi normal pada kebisingan (yang tidak masuk akal). Saya tidak yakin apakah ini dapat dimodifikasi dengan beberapa cara tertimbang dengan diskon. Jika distribusi yang berbeda diharapkan untuk memodelkan kebisingan, maka normfit dan uji Kolmogorov-Smirnov harus diganti dengan padanannya untuk distribusi tersebut.T

Artem Kaznatcheev
sumber
0

Anda dapat mempertimbangkan pengujian mundur (dengan jendela bergulir) untuk integrasi antara xdan rata-rata jangka panjang.

Ketika xmembalik-balik nilai rata-rata, semoga tes Augmented Dickey Fuller yang berjendela, atau tes ko-integrasi apa pun yang Anda pilih, akan memberi tahu Anda bahwa kedua seri tersebut saling terintegrasi. Setelah Anda memasuki masa transisi, di mana kedua seri saling menjauh, semoga pengujian Anda akan memberi tahu Anda bahwa seri berjendela tidak saling terintegrasi.

Masalah dengan skema ini adalah bahwa lebih sulit untuk mendeteksi integrasi bersama di jendela yang lebih kecil. Dan, sebuah jendela yang terlalu besar, jika itu hanya mencakup segmen kecil dari periode transisi, akan memberi tahu Anda bahwa seri berjendela itu saling terintegrasi padahal seharusnya tidak. Dan, seperti yang Anda duga, tidak ada cara untuk mengetahui sebelumnya apa ukuran jendela "kanan".

Yang bisa saya katakan adalah bahwa Anda harus bermain-main dengannya untuk melihat apakah Anda mendapatkan hasil yang masuk akal.

bill_080
sumber
0

mt+1-mt

Pete
sumber
0

Selain dari solusi Kalman Filter yang jelas, Anda dapat menggunakan dekomposisi wavelet dan mendapatkan spektrum daya waktu dan frekuensi yang terlokalisasi. Ini memenuhi keinginan tanpa asumsi Anda, tetapi sayangnya tidak memberi Anda tes formal kapan sistem diselesaikan. Tapi, untuk aplikasi praktis, tidak apa-apa; lihat saja saat energi dalam frekuensi tinggi mati, dan ketika koefisien wavelet ayah stabil.

pengguna2763361
sumber
bukankah itu hanya menghabiskan uang, karena saya harus tidak menguji ketika koefisien time-series ayah stabil? Atau adakah metode standar untuk rangkaian waktu khusus ini? Apa solusi filter Kalman yang jelas?
Artem Kaznatcheev
@ArtemKaznatcheev Mengapa Anda tidak bisa hanya melihat plot seri koefisien? Saya mencoba menawarkan solusi yang tidak sesuai dengan keinginan Anda untuk menguji, tetapi sebagai trade-off tanpa banyak asumsi.
user2763361