Menganalisis pola naik / turun dalam data deret waktu singkat


8

Saya belum sering bekerja dengan data deret waktu, jadi saya mencari beberapa petunjuk tentang cara terbaik untuk melanjutkan dengan pertanyaan khusus ini.

Katakanlah saya memiliki data berikut - grafik di bawah ini:

masukkan deskripsi gambar di sini

Di sini ada tahun pada sumbu x. Sumbu-y adalah ukuran 'ketimpangan' misalnya bisa berupa ketimpangan pendapatan di suatu negara.

Untuk pertanyaan ini, saya tertarik untuk bertanya apakah ada sifat naik / turun ke data tahun ke tahun (karena ingin deskripsi yang lebih baik). Intinya, saya ingin bertanya apakah ketidaksetaraan naik tahun lalu dari tahun sebelumnya, apakah sekarang akan turun kembali? Ukuran naik / turun mungkin penting untuk faktor juga.

Saya berpikir bahwa sesuatu seperti wavelet analysisatau Fourier analysisdapat membantu, meskipun saya belum pernah menggunakan ini sebelumnya dan saya percaya bahwa ukuran sampel seperti ini terlalu kecil.

Akan tertarik dengan ide / saran untuk saya tindak lanjuti.

EDIT:

Ini adalah data untuk bagan ini:

#   year     value
#1  1956 0.9570912
#2  1957 1.0303563
#3  1958 0.9568302
#4  1959 1.1449074
#5  1960 0.8962963
#6  1961 1.0431552
#7  1962 0.8050077
#8  1963 0.8533181
#9  1964 0.9971713
#10 1965 1.0453083
#11 1966 0.8221328
#12 1967 1.0594876
#13 1968 1.1244195
#14 1969 1.0705498
#15 1970 0.8669457
#16 1971 0.8757319
#17 1972 1.0815189
#18 1973 1.1458959
#19 1974 1.2782848
#20 1975 1.0729718
#21 1976 1.1569416
#22 1977 1.2063673
#23 1978 1.1509700
#24 1979 1.1172020
#25 1980 1.0691429
#26 1981 1.0907407
#27 1982 1.1753854
#28 1983 0.9440187
#29 1984 1.1214175
#30 1985 1.2777778
#31 1986 1.2141739
#32 1987 0.9481722
#33 1988 1.1484652
#34 1989 0.7968458
#35 1990 1.1721074
#36 1991 1.1569523
#37 1992 0.8160300
#38 1993 0.9483291
#39 1994 1.0898612
#40 1995 0.8196819
#41 1996 1.0297017
#42 1997 1.0207769
#43 1998 0.9720285
#44 1999 0.8685848
#45 2000 0.9228595
#46 2001 0.9171540
#47 2002 1.0470085
#48 2003 0.9313437
#49 2004 1.0943982
#50 2005 1.0248419
#51 2006 0.9392917
#52 2007 0.9666248
#53 2008 1.1243693
#54 2009 0.8829184
#55 2010 0.9619517
#56 2011 1.0030864
#57 2012 1.1576998
#58 2013 0.9944945

Di sini mereka dalam Rformat:

structure(list(year = structure(1:58, .Label = c("1956", "1957", 
"1958", "1959", "1960", "1961", "1962", "1963", "1964", "1965", 
"1966", "1967", "1968", "1969", "1970", "1971", "1972", "1973", 
"1974", "1975", "1976", "1977", "1978", "1979", "1980", "1981", 
"1982", "1983", "1984", "1985", "1986", "1987", "1988", "1989", 
"1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", 
"1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", 
"2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013"
), class = "factor"), value = c(0.957091237579043, 1.03035630567276, 
0.956830206830207, 1.14490740740741, 0.896296296296296, 1.04315524964493, 
0.805007684426229, 0.853318117977528, 0.997171336206897, 1.04530832219251, 
0.822132760780104, 1.05948756976154, 1.1244195265602, 1.07054981337927, 
0.866945712836124, 0.875731948296804, 1.081518931763, 1.1458958958959, 
1.27828479729065, 1.07297178130511, 1.15694159981794, 1.20636732623034, 
1.15097001763668, 1.11720201026986, 1.06914289768696, 1.09074074074074, 
1.17538544689082, 0.944018731375053, 1.12141754850088, 1.27777777777778, 
1.21417390277039, 0.948172198172198, 1.14846524606799, 0.796845829569407, 
1.17210737869653, 1.15695226716732, 0.816029959161985, 0.94832907620264, 
1.08986124767836, 0.819681861348528, 1.02970169141241, 1.02077687443541, 
0.972028455959697, 0.868584838281808, 0.922859547859548, 0.917153996101365, 
1.04700854700855, 0.931343718539713, 1.09439821062628, 1.02484191508582, 
0.939291692822766, 0.966624816907303, 1.12436929683306, 0.882918437563246, 
0.961951667980037, 1.00308641975309, 1.15769980506823, 0.994494494494494
)), row.names = c(NA, -58L), class = "data.frame", .Names = c("year", 
"value"))

Gagasan yang sangat sederhana: bagaimana dengan mengambil rangkaian waktu perbedaan dan melihat koefisien korelasi otomatis?
psarka

Data sekarang terungkap sebagai ketidaksetaraan diukur menggunakan Lorenz Asimetri. Lihat komentar OP di bawah jawaban oleh @IrishStat. Tapi apa sifat kurva yang lebih halus? Menjadi malu tentang apa yang Anda tunjukkan biasanya hanya membuat pertanyaan lebih samar, tidak berguna lebih umum.
Nick Cox

Analisis Fourier @jalapic pada sampel pengamatan pendek hampir selalu sia-sia. Anda dapat memilih siklus dengan panjang gelombang 25 tahun, tetapi itu akan menjadi sangat lemah. Anda hampir tidak memiliki satu siklus penuh yang terbaik. Fourier dirancang untuk data fisik di mana Anda memiliki seri berulang atau setidaknya panjang.
Aksakal

Anda menyadari bahwa sifat naik turun yang Anda gambarkan cocok dengan gagasan regresi terhadap rata-rata. Yaitu Anda akan memiliki perilaku naik turun bahkan jika seri Anda tidak memiliki memori dalam arti arima.
Korone

Jawaban:


6

Jika seri tidak berkorelasi, mengambil perbedaan yang tidak perlu akan menyuntikkan korelasi-otomatis. Bahkan jika seri ini adalah autokorelasi, perbedaan yang tidak beralasan tidak pantas. Ide-ide sederhana dan pendekatan sederhana seringkali memiliki efek samping yang tidak diinginkan. Proses identifikasi model (ARIMA) dimulai dengan seri asli dan dapat mengakibatkan perbedaan tetapi tidak boleh dimulai dengan perbedaan yang tidak beralasan kecuali ada justifikasi teoretis. Jika mau, Anda dapat memposting seri waktu singkat Anda dan saya akan menggunakannya untuk menjelaskan kepada Anda bagaimana mengidentifikasi model untuk seri ini.

Setelah menerima data:

ACF data Anda tidak pada awalnya (atau akhirnya) menunjukkan proses ARIMA di sini KEDUA ACF dan PACF
gambar
dan di sini hanya ACF:
gambarNamun tampaknya ada dua tingkat pergeseran dalam data Anda ... satu pada 1972 dan yang lain pada 1992 .. mereka tampaknya hampir membatalkan pergeseran level. Model yang berguna mungkin juga mencakup penggabungan tiga nilai yang tidak biasa pada periode 1989,1959 dan 1983. Persamaannya kemudian gambar
dan di sini
gambar
dengan statistik model di sini:
gambar
Aktual / Fit dan Prakiraan ada di sini gambardengan plot residual di sini menunjukkan kecukupan model gambar. Ini dikonfirmasi oleh acf dari residu gambar. Akhirnya kecocokan dan ramalan meringkas temuan gambar.
Singkatnya seri (mungkin rasio) tanpa memori auto-regresif yang signifikan tetapi memiliki beberapa struktur deterministik terbukti (signifikan secara statistik). Semua model salah tetapi beberapa berguna (Kotak GEP).

Setelah beberapa diskusi .. Jika seseorang memodelkan perbedaan maka orang akan mendapatkan model berikut ... masukkan deskripsi gambar di sinidengan ACTUAL / FIT dan PERAMALAN masukkan deskripsi gambar di sini. Prakiraan terlihat sangat mirip ... koefisien MA secara efektif membatalkan operator yang membedakan.


Terima kasih banyak atas sarannya. Saya akan sangat tertarik mendengar lebih banyak - Saya telah menambahkan data mentah ke pertanyaan.
Jalapic

2
@IrishStat menyarankan model dengan 6 parameter. Seluruh kumpulan data adalah 58 pengamatan. Ini membuatnya 10 pengamatan per parameter. Bahkan jika ini bukan data ekonomi, saya akan mengatakan bahwa sampel terlalu kecil untuk mendukung model 6 parameter. Karena ini adalah model ekonomi, saya akan mengatakan bahwa model deret waktu murni tidak akan berfungsi. Anda memerlukan variabel eksogen (PDB?) Atau semacam model struktural.
Aksakal

2
Model dapat dengan mudah disederhanakan untuk mengabaikan tiga titik menyimpang (pulsa). Ini akan mengurangi menjadi 3 koefisien .. indikator pergeseran konstan dan dua tingkat ... tidak bisa lebih sederhana! dan masih akan memberikan representasi yang masuk akal ... dua tingkat pergeseran. Saya setuju bahwa model deret waktu murni tidak akan berfungsi. Model yang saya sajikan hanyalah model regresi biasa dengan dua indikator pergeseran tingkat ... tidak ada memori sehingga tidak secara klasik berbicara model deret waktu karena tidak ada struktur ARIMA dalam model karena tidak beralasan.
IrishStat

Seseorang tidak dapat menangis "Saya perlu lebih banyak variabel", walaupun pengalaman saya mengatakan bahwa ini benar. Masalah ini apa adanya! Pecahkan itu!
IrishStat

@aksakal, apa yang ditunjukkan model irishstat adalah ia memiliki 5 variabel, jika kekikiran menjadi perhatian, Anda bisa mematikan pulsa dan hanya menjaga level shift yang akan menjawab pertanyaan op. Saya tahu tidak ada metedologi lain selain autobox yang efisien melakukan jenis deteksi pergeseran tingkat sebelum memilih model deret waktu
peramal

3

Anda dapat melihat naik turun sebagai urutan acak, yang dihasilkan oleh beberapa proses acak. Misalnya, mari kita asumsikan bahwa Anda sedang berurusan dengan seri stasionerx1,x2,x3,...,xnf(x)dimana f(x)adalah distribusi probabilitas seperti Gaussian, Poisson atau yang lainnya. Ini adalah seri stasioner. Sekarang, Anda dapat membuat variabel baruyt seperti yang yt=1:xt<xt+1 dan yt=0:xtxt+1, ini adalah pasang surut Anda. Urutan baru ini akan membentuk urutan acaknya sendiri dengan properti menarik, lihat misalnya V Khil, Elena. + Msgstr "Properti Markov dari celah antara maxima lokal dalam urutan variabel acak independen." (2013).

Misalnya, lihat ACF dan PACF dari seri Anda. Tidak ada apa-apa di sini. Ini tidak tampak seperti model ARIMA. Sepertinya urutan tidak berkorelasixt. masukkan deskripsi gambar di sini

Ini berarti bahwa kami dapat mencoba menerapkan hasil yang diketahui untuk yt, mis. diketahui bahwa jarak rata-rata antara dua pasangan (atas-bawah) (atau U-putaran sebagaimana beberapa orang menyebutnya) adalah 3. Dalam data Anda atur puncak pertama (atas-bawah) adalah 1957 dan yang terakhir adalah 2012, dengan 16 puncak secara total. Jadi, jarak rata-rata antara puncak adalah 15/55 = 3,67. Kita tahu bahwaσ=1.108, dan dengan 15 pengamatan σ15=σ/15=0.29. Jadi jarak rata-rata antara puncak ada di dalam1.2σn dari mean teoritis.

PEMBARUAN: pada siklus

Grafik dalam pertanyaan OP tampaknya menunjukkan bahwa ada semacam siklus berjalan yang panjang. Ada beberapa masalah dengan ini.

  1. Jika Anda menghasilkan urutan acak, kadang-kadang sesuatu seperti siklus dapat muncul secara acak. Jadi, dengan 58 titik data yang merupakan data pengamatan murni, tidak mungkin untuk mendeklarasikan siklus tanpa semacam teori ekonomi di baliknya. Tidak ada yang akan menganggapnya serius tanpa alasan ekonomi. Untuk itu Anda pasti membutuhkan variabel eksogen, saya khawatir.
  2. Lihatlah makalah yang luar biasa ini: Penjumlahan Penyebab Acak sebagai Sumber Proses Siklik , Eugen Slutzky, Econometrica, Vol. 5, No. 2 (Apr., 1937), hlm. 105-146. Pada dasarnya, terkadang siklus disebabkan oleh semacam proses MA.
  3. Ini bisa jadi ilusi. Saya sering menggunakan trik ini dalam presentasi. Saya menunjukkan data aktual, kemudian menggambar garis, lingkaran, atau panah untuk mengacaukan otak audiens saya :) Garis ekstra menipu otak untuk melihat tren yang mungkin tidak ada sama sekali, atau untuk membuat mereka terlihat jauh lebih kuat daripada yang sebenarnya.

Dalam 45 bulan di forum ini, saya jarang berkomentar tentang jawaban TETAPI dalam hal ini jawaban Anda membuat saya berkerut dan tidak bisa berkata-kata. Bisakah Anda jelaskan model Anda, tes signifikansi Anda, tes mengenai asumsi Anda, ramalan dengan interval kepercayaan dan kesimpulan logis.
IrishStat

1
Ini bukan model saya. Idenya sederhana: jika Anda memiliki urutan tidak berkorelasixt, lalu Anda dapat membuat urutan lain darinya, seperti yt, yang akan memiliki 1 jika xtnaik dibandingkan dengan nilai sebelumnya, dan 0 jika turun. Dalam hal ini [1,0] memasangkanyt akan menunjukkan maksimum lokal (puncak) di xt, seperti pada tahun 1957 dan 1959. Selebihnya mudah, Anda dapat membuat semua jenis statistik yturutan. Saya memikirkan hal ini karena OP memiliki "atas / bawah" pada judul pertanyaan. Urutannyaytmemiliki banyak fitur markovian yang menarik.
Aksakal

IMHO atas / bawahnya bukan periode ke periode tetapi lebih dari cakrawala yang lebih panjang. Terima kasih atas penjelasan anda Tidak ada dalam datanya yang menyarankan urutan naik / turun yang dapat diprediksi.
IrishStat

Mereka tidak dapat diprediksi dalam model ini. Mereka acak tetapi berkorelasi
Aksakal

SAYA SANGAT tidak setuju mereka tidak berkorelasi ... dalam masing-masing dari tiga rezim: 1956-1972 .... 1973-1991 ... 1992-2013 ... mengingat bahwa Anda menyesuaikan / memodifikasi tiga poin / pembacaan yang tidak biasa.
IrishStat

2

Aside 1: Satu hal yang kita lihat adalah penampilan tren siklus panjang dalam data. Ini seharusnya tidak terlalu mempengaruhi analisis tahun-ke-tahun * - jadi untuk analisis yang sangat mendasar ini saya akan mengabaikannya dan memperlakukan data seolah-olah mereka homogen selain dari efek yang Anda minati.

* (itu akan cenderung mengurangi jumlah pergerakan arah berlawanan dari apa yang Anda harapkan dengan homogenitas - jadi itu akan cenderung menurunkan kekuatan tes ini. Kita bisa mencoba mengukur dampak itu, tapi saya tidak berpikir ada kebutuhan yang kuat kecuali jika tampaknya cukup besar untuk membuat perbedaan - jika itu sudah signifikan, menyesuaikan sesuatu yang akan membuat nilai p sedikit lebih kecil akan menjadi usaha yang sia-sia.)

Selain 2: Seperti yang diungkapkan, pertanyaan Anda tampaknya melibatkan alternatif satu sisi. Saya akan bekerja atas dasar bahwa ini adalah apa yang Anda inginkan.

Mari kita mulai dengan analisis sederhana yang diarahkan langsung pada pertanyaan dasar Anda, yang tampaknya seperti "apakah peningkatan lebih mungkin diikuti oleh penurunan?"

Namun, ini tidak sesederhana yang pertama kali muncul. Dalam serangkaian stabil, dengan data murni acak, meningkat adalah lebih mungkin diikuti oleh penurunan. Perhatikan bahwa hipotesis yang kami pertimbangkan melibatkan tiga pengamatan, yang dapat dipesan dalam enam cara yang mungkin:

masukkan deskripsi gambar di sini

Dari enam cara itu, 4 melibatkan perubahan arah. Jadi seri murni acak (terlepas dari distribusi) harus melihat flip arah 2/3 dari waktu.

[Ini terkait erat dengan tes run-up-and-down, di mana Anda tertarik pada apakah ada terlalu banyak tes untuk menjadi acak. Anda bisa menggunakan tes itu sebagai gantinya.]

Saya berasumsi bahwa minat Anda yang sebenarnya adalah apakah lebih tinggi dari 2/3 acak daripada apakah lebih dari 1/2 seperti yang Anda tanyakan.

H0: seri ini "acak"

H1:pergeseran ke atas atau ke bawah lebih cenderung diikuti oleh pergeseran ke arah yang berlawanan dari yang Anda lihat dengan seri acak

Uji statistik: proporsi pergeseran diikuti oleh pergeseran dalam arah yang berlawanan.

Karena tiga kali lipat kami tumpang tindih, saya percaya kami memiliki beberapa ketergantungan di antara tiga kali lipat, jadi kami tidak bisa memperlakukan ini sebagai binomial (kami bisa jika kami membagi data menjadi tiga kali lipat yang tidak tumpang tindih; itu akan berfungsi dengan baik).

Mempertahankan ketergantungan itu dalam pikiran, kita masih bisa menghitung distribusi statistik uji, tetapi kita tidak perlu dalam hal ini, karena proporsi yang diamati dari arah terbalik tiga kali lipat hanya di bawah jumlah yang diharapkan 2/3 untuk seri acak , dan kami hanya tertarik pada lebih banyak pembalikan dari itu.

Jadi kita tidak perlu menghitung lebih jauh - tidak ada bukti sama sekali kecenderungan untuk membalikkan (naik-turun atau turun-naik) lebih dari yang Anda dapatkan dengan seri acak.

[Saya benar-benar meragukan siklus ringan yang diabaikan akan memiliki dampak yang cukup untuk memindahkan proporsi yang diharapkan turun cukup dekat untuk ini untuk membuat perbedaan yang nyata.]


Terima kasih, sangat menarik. Sebuah pertanyaan singkat tentang tes lari. Apakah Anda mengacu pada uji coba biasa untuk menguji keacakan? Dari data di atas, saya dapat menghasilkan proses berikut: 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0dengan 1 menunjukkan seri naik, dan 0 turun. Menggunakan runs.testdari tseriespaket R, ini memberikan statistik uji 1,81 dan p 0,07. Sementara saya tidak terlalu khawatir tentang contoh data ini, saya ingin tahu apakah ini adalah jenis analisis yang Anda maksud?
Jalapic

Tidak, saya percaya itu hanya semacam (misalnya untuk penggumpalan tanda, katakanlah), bukan naik-turun. Ini akan cocok untuk jenis hipotesis yang agak berbeda dari ini.
Glen_b -Reinstate Monica

@ Glen_b, enam kemungkinan cara naik-turun dan hal-hal seperti itu tercakup dalam literatur yang dapat ditelusuri kembali dari kertas yang saya posting dalam jawaban saya. Khususnya, dari gambar Anda, Anda dapat dengan mudah melihat bahwa ada dua cara untuk memiliki urutan naik-turun dari enam kombinasi. Ini berarti bahwa P =
1/3

@Aksakal Bahwa mereka terhubung tidak mengherankan, karena mereka sedang mempertimbangkan hal-hal yang berkaitan erat (saya hanya dapat meningkatkan jawaban Anda sekali, maaf). Saya hanya memutuskan untuk mencoba menjawab interpretasi yang paling literal dari pertanyaan dengan cara yang paling dasar yang saya bisa, karena saya pikir itu mungkin terbukti mencerahkan untuk menunjukkan bahwa beberapa analisis yang cukup mendasar yang memerlukan sedikit matematika di luar penghitungan dapat memberikan beberapa hasil yang bermanfaat.
Glen_b -Reinstate Monica

jalapic - lihat halaman ini yang membahas run-up-and-down dan versi tertentu dari run-of-one-kind. Ini memberikan perkiraan normal yang berguna untuk menjalankan naik-turun dan juga harus membantu memperjelas perbedaan.
Glen_b -Reinstate Monica

1

Anda bisa menggunakan paket yang disebut perubahan struktural yang memeriksa kerusakan atau pergeseran level dalam data. Saya telah cukup berhasil dalam mendeteksi perubahan level untuk deret waktu non-musiman.

Saya mengubah "nilai" Anda menjadi data deret waktu. dan menggunakan kode berikut untuk memeriksa pergeseran level atau mengubah poin atau memecahkan poin. Paket ini juga memiliki fitur-fitur bagus seperti chow test untuk melakukan chow test untuk menguji kerusakan struktural:

require(strucchange)
value.ts <- ts(data[,2],frequency = 1, start = (1956))
bp.value <- breakpoints(value.ts ~ 1)
summary(bp.value)

Berikut ini adalah ringkasan dari fungsi breakpont:

Breakpoints at observation number:

m = 1           36      
m = 2     16    31      
m = 3     16    36    46
m = 4     16 24 36    46
m = 5   8 16 24 36    46
m = 6   8 16 24 33 41 49

Corresponding to breakdates:

m = 1                  1991          
m = 2        1971      1986          
m = 3        1971      1991      2001
m = 4        1971 1979 1991      2001
m = 5   1963 1971 1979 1991      2001
m = 6   1963 1971 1979 1988 1996 2004

Fit:

m   0           1           2           3           4           5           6          
RSS   0.8599316   0.7865981   0.5843395   0.5742085   0.5578739   0.5559645   0.5772778
BIC -71.5402819 -68.5892480 -77.7080112 -70.6015129 -64.1544916 -56.2324540 -45.9296608

Seperti yang Anda lihat fungsi mengidentifikasi kemungkinan jeda dalam data Anda dan memilih dua jeda struktural pada 1971 dan 1986 seperti yang ditunjukkan dalam plot di bawah ini berdasarkan kriteria BIC. Fungsi ini juga menyediakan titik istirahat alternatif lain seperti yang tercantum dalam output di atas.

masukkan deskripsi gambar di sini

Semoga ini bermanfaat


Masalah dengan pendekatan yang Anda gunakan adalah bahwa ia diam-diam mengasumsikan tidak ada pulsa dan (mungkin) tidak ada struktur ARIMA. Istirahat saya adalah "berdasarkan atau sekitar dasar" 1972 dan 1992 .... Anda adalah 1971 dan 1986, mengabaikan anomali 1989. Singkatnya, analisisnya tidak jauh berbeda dengan tambang yang kuat untuk anomali satu kali.
IrishStat

@IrishStat Anda benar. Autobox memang mengidentifikasi koreksi untuk pulsa dan kemudian mengidentifikasi dengan benar untuk pergeseran level. Satu masalah yang saya miliki dengan paket perubahan struktural dalam R adalah bahwa ia bekerja dengan cukup baik untuk seri waktu non musiman, ini memiliki penggunaan yang sangat terbatas atau tidak digunakan dalam seri waktu Musim, yang saya yakin Autobox menangani dengan sangat baik.
peramal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.