Konsekuensi pemodelan proses non-stasioner menggunakan ARMA?


23

Saya mengerti kita harus menggunakan ARIMA untuk pemodelan seri waktu non-stasioner. Juga, semua yang saya baca mengatakan ARMA seharusnya hanya digunakan untuk seri waktu stasioner.

Apa yang saya coba pahami adalah, apa yang terjadi dalam praktik ketika salah mengklasifikasikan model, dan berasumsi d = 0untuk deret waktu yang non-stasioner? Sebagai contoh:

controlData <- arima.sim(list(order = c(1,1,1), ar = .5, ma = .5), n = 44)

data kontrol terlihat seperti ini:

 [1]   0.0000000   0.1240838  -1.4544087  -3.1943094  -5.6205257
 [6]  -8.5636126 -10.1573548  -9.2822666 -10.0174493 -11.0105225
[11] -11.4726127 -13.8827001 -16.6040541 -19.1966633 -22.0543414
[16] -24.8542959 -25.2883155 -23.6519271 -21.8270981 -21.4351267
[21] -22.6155812 -21.9189036 -20.2064343 -18.2516852 -15.5822178
[26] -13.2248230 -13.4220158 -13.8823855 -14.6122867 -16.4143756
[31] -16.8726071 -15.8499558 -14.0805114 -11.4016515  -9.3330560
[36]  -7.5676563  -6.3691600  -6.8471371  -7.5982880  -8.9692152
[41] -10.6733419 -11.6865440 -12.2503202 -13.5314306 -13.4654890

Dengan asumsi saya tidak tahu datanya ARIMA(1,1,1), saya mungkin akan melihatnya pacf(controlData).

pacf (controlData)

Lalu saya menggunakan Dickey-Fuller untuk melihat apakah datanya tidak stasioner:

require('tseries')
adf.test(controlData)

# Augmented Dickey-Fuller Test
#
# data:  controlData
# Dickey-Fuller = -2.4133, Lag order = 3, p-value = 0.4099
# alternative hypothesis: stationary

adf.test(controlData, k = 1)

# Augmented Dickey-Fuller Test
#
#data:  controlData
# Dickey-Fuller = -3.1469, Lag order = 1, p-value = 0.1188
# alternative hypothesis: stationary

Jadi, saya mungkin berasumsi bahwa data tersebut adalah ARIMA (2,0, *) Kemudian gunakan auto.arima(controlData) untuk mencoba mendapatkan yang terbaik?

require('forecast')
naiveFit <- auto.arima(controlData)
naiveFit
# Series: controlData 
# ARIMA(2,0,1) with non-zero mean 
# 
# Coefficients:
#          ar1      ar2     ma1  intercept
#      1.4985  -0.5637  0.6427   -11.8690
# s.e.  0.1508   0.1546  0.1912     3.2647
#
# sigma^2 estimated as 0.8936:  log likelihood=-64.01
# AIC=138.02   AICc=139.56   BIC=147.05

Jadi, meskipun data masa lalu dan masa depan adalah ARIMA (1,1,1), saya mungkin tergoda untuk mengklasifikasikannya sebagai ARIMA (2,0,1). tsdata(auto.arima(controlData))terlihat bagus juga.

Inilah yang akan ditemukan oleh pemodel informasi:

informedFit <- arima(controlData, order = c(1,1,1))
# informedFit
# Series: controlData 
# ARIMA(1,1,1)                    
#
# Coefficients:
#          ar1     ma1
#       0.4936  0.6859
# s.e.  0.1564  0.1764
#
# sigma^2 estimated as 0.9571:  log likelihood=-62.22
# AIC=130.44   AICc=131.04   BIC=135.79

1) Mengapa kriteria informasi ini lebih baik daripada model yang dipilih oleh auto.arima(controlData)?

Sekarang, saya hanya membandingkan data nyata, dan 2 model:

plot(controlData)
lines(fitted(naiveFit), col = "red")
lines(fitted(informedFit), col = "blue")

tsPlots

2) Bermain sebagai penasihat iblis, konsekuensi apa yang akan saya bayarkan dengan menggunakan ARIMA (2, 0, 1) sebagai model? Apa risiko dari kesalahan ini?

3) Saya lebih khawatir tentang implikasi untuk prediksi ke depan multi-periode. Saya menganggap mereka akan kurang akurat? Saya hanya mencari beberapa bukti.

4) Apakah Anda menyarankan metode alternatif untuk pemilihan model? Apakah ada masalah dengan alasan saya sebagai pemodel "tidak tahu"?

Saya benar-benar ingin tahu apa konsekuensi lain dari kesalahan klasifikasi semacam ini. Saya telah mencari beberapa sumber dan tidak dapat menemukan apa pun. Semua literatur yang saya dapat temukan hanya menyentuh pada subjek ini, sebagai gantinya hanya menyatakan data harus stasioner sebelum melakukan ARMA, dan jika tidak stasioner, maka perlu dibedakan d kali.

Terima kasih!


Kesan saya adalah bahwa analog dengan asumsi "kesalahan ortogonal" dalam regresi cross-sectional (yaitu bias bias kesalahan standar tetapi bukan koefisien), tapi saya benar-benar tertarik mendengar jawaban yang sebenarnya.
shadowtalker

Jawaban:


11

Kesan saya adalah bahwa pertanyaan ini tidak memiliki jawaban yang unik dan sepenuhnya umum, jadi saya hanya akan mengeksplorasi kasus yang paling sederhana, dan sedikit informal.

(1)yt=yt-1+kamut,t=1,...,T,y0=0
kamutE(kamut2)=σkamu2

(2)yt=saya=1tkamusaya

SEBUAH

(3)yt=βyt-1+kamut,t=1,...,T,y0=0

β^β (mari kita membahas metode estimasi hanya jika perlu muncul).

k

(4)y^T+k=β^kyT

dan MSE -nya akan

M.SESEBUAH[y^T+k]=E(β^kyT-yT+k)2

(5)=E[(β^k-1)yT-saya=T+1T+kkamusaya]2=E[(β^k-1)2yT2]+kσkamu2

(jangka menengah persegi lenyap, serta produk silang kesalahan masa depan).

B

(6)Δyt=γΔyt-1+kamut

γ^

(7)yt=yt-1+γ(yt-1-yt-2)+kamut

jadi meramalkan tingkat proses, kita akan miliki

y^T+1=yT+γ^(yT-yT-1)

yang pada kenyataannya, mengingat DGP yang benar akan

(8)y^T+1=yT+γ^kamuT

B

y^T+k=yT+(γ^+γ^2+...+γ^k)kamuT

|γ^|<10

(9)y^T+k=yT+γ^-γ^k+11-γ^kamuT

dan sebagainya

(10)M.SEB[y^T+k]=E[(γ^-γ^k+11-γ^)2kamuT2]+kσkamu2

sementara saya ulangi untuk kenyamanan

(5)M.SESEBUAH[y^T+k]=E[(β^k-1)2yT2]+kσkamu2

Jadi, agar model yang dibedakan tampil lebih baik dalam hal prediksi MSE, kami ingin

M.SEB[y^T+k]M.SESEBUAH[y^T+k]

E[(γ^-γ^k+11-γ^)2kamuT2]E[(β^k-1)2yT2]

BSEBUAHβ^ akan "dekat dengan kesatuan".

β^>1kkBSEBUAH .

SEBUAHβ^<1k

E[(γ^1-γ^)2kamuT2]E[yT2]=Tσkamu2??

kk

(γ^1-γ^)20B memiliki keunggulan dari aspek ini.

γ^kamuT

Cov[(γ^1-γ^)2,kamuT2]+E[(γ^1-γ^)2]σkamu2Tσkamu2??

Cov[(γ^1-γ^)2,kamuT2](T-E[(γ^1-γ^)2])σkamu2??

γ^Tγ^(0,1) ).

Jadi, secara keseluruhan, tanpa membahas metode estimasi spesifik, saya percaya bahwa kami dapat menunjukkan secara informal bahwa model yang dibeda-bedakan harus diharapkan berkinerja lebih baik dalam hal prediksi MSE.


1

Itu pertanyaan yang bagus.

Seperti yang saya sadari, Anda baru saja mempertimbangkan pacf tapi itu belum cukup. ACF dan PACF sama-sama diperlukan untuk memilih model terbaik.

Di sisi lain, tes stasioner lemah dan sensitif dan membutuhkan sejumlah besar keterlambatan untuk diuji.

Selain itu, lebih disukai untuk membuat seri waktu stasioner sebelum menerapkan model apa pun. Secara kasar, model ARIMA hanya mempertimbangkan kasus khusus sebagai non-stasioner (lebih disukai dalam tren).

Tentang pertanyaan Anda, saya tidak yakin tentang fungsi auto.arima tetapi saya yakin bahwa jumlah titik data dalam contoh Anda kecil. Simulasi model dengan menggunakan banyak titik data akan menjawab pertanyaan Anda dengan baik. Juga, saya menyarankan Anda untuk mempertimbangkan ACF time series serta PACF. Tentang pemilihan model, aturan praktis adalah memilih model yang paling sederhana (perhatikan bahwa model yang paling sederhana setelah membuat time series stationary).

Saya merujuk Anda ke referensi ini . Buku ini tidak menjawab semua pertanyaan Anda tetapi memberi Anda beberapa petunjuk.

----- bagian pelengkap ------- @nsw mempertimbangkan tren dalam data Anda. Jika Anda mempertimbangkan model stasioner, itu menghasilkan prediksi naik / turun tetapi sebenarnya model ARMA dirancang untuk memprediksi data datar. Saya telah mengubah kode Anda untuk mencerminkan perbedaan ini:

membutuhkan ('perkiraan')

membutuhkan ('tseries')

controlData <- arima.sim (daftar (urutan = c (1,1,1), ar = .5, ma = .5), n = 1000 )

ACF (controlData)

ts.plot (controlData)

naiveFit <- arima (controlData, order = c (2,0,1))

trueFit <- arima (controlData, order = c (1,1,1))

PrnaiveFit <-forecast.Arima (naiveFit, 10)

PrtrueFit <- forecast.Arima (trueFit, 10)

matplot (cbind ( rata-rata PrnaiveFit $ , rata-rata PrtrueFit $ ), jenis = 'b', col = c ('merah', 'hijau'), ylab = c ('prediksi ion'), pch = c ('n', 't'))


1
Pertanyaan bertanya mengapa lebih disukai untuk "membuat seri waktu stasioner." Ini tidak benar-benar menjawab pertanyaan itu.
shadowtalker

@ssdecontrol Secara umum Anda benar. Saya benar-benar lebih khawatir tentang konsekuensi tersirat pada prediksi setelah kesalahan spesifikasi. Tapi aku tidak ingin memukul Hamed. Dia terlalu banyak. Dia masih menjawab pertanyaan terakhir saya tentang, "apakah ini cara yang tepat untuk memilih model?" Tetapi hanya untuk mengulangi, itu yang paling tidak menjadi perhatian saya di sini.
Clark Henry
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.