Apakah prediksi GARCH selaras dengan return teramati?

Model GARCH di R

Kris Boudt

Professor of finance and econometrics

Kriteria evaluasi

  • Bergantung pada apa yang dievaluasi
    • mean yang diprediksi
    • varians yang diprediksi
    • distribusi return yang diprediksi
Model GARCH di R

1) Kecocokan untuk prediksi mean

Berdasarkan model GARCH terestimasi, kita memiliki:

Implementasi

e <- residuals(tgarchfit) 
mean(e ^ 2)
Model GARCH di R

2) Kecocokan untuk prediksi varians

Model GARCH menghasilkan:

Implementasi

e <- residuals(tgarchfit)
d <- e ^ 2 - sigma(tgarchfit) ^ 2 
mean(d ^ 2)
Model GARCH di R

Contoh untuk return EUR/USD

tgarchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
   variance.model = list(model = "sGARCH", variance.targeting = TRUE),
   distribution.model = "std")
tgarchfit <- ugarchfit(data = EURUSDret, spec = tgarchspec)
# Hitung galat kuadrat rata-rata untuk mean
e <- residuals(tgarchfit) ^ 2
mean(e ^ 2) # 3.836205e-05
# Hitung galat kuadrat rata-rata untuk varians
d <- e ^ 2 - sigma(tgarchfit) ^ 2
mean(d ^ 2) # 5.662366e-09
Model GARCH di R

3) Kecocokan untuk distribusi

  • Model GARCH memberikan densitas prediksi untuk semua return dalam sampel
    • Semakin tinggi densitas, semakin mungkin return tersebut di bawah model GARCH terestimasi
    • Likelihood sampel didasarkan pada produk semua densitas ini. Ini mengukur seberapa mungkin return teramati berasal dari model GARCH terestimasi
    • Likelihood lebih tinggi berarti model lebih cocok dengan data Anda
Model GARCH di R

Contoh untuk return EUR/USD

likelihood(tgarchfit) # returns 18528.58

Analisis dengan membandingkan model lain:

# Model kompleks dengan banyak parameter
flexgarchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                            variance.model = list(model = "gjrGARCH"),
                            distribution.model = "sstd")
flexgarchfit <- ugarchfit(data = EURUSDret, spec = flexgarchspec)
likelihood(flexgarchfit) # returns 18530.49
Model GARCH di R

Risiko overfitting

Perhatian: Kita menggunakan evaluasi in-sample, di mana sampel estimasi dan evaluasi bertepatan.

Risiko overfitting:

Overfitting adalah memilih model terlalu kompleks yang cocok untuk return pada sampel estimasi, tetapi tidak untuk return di luar sampel.

Model GARCH di R

Solusi: Seimbangkan kecocokan dengan penalti kompleksitas

  • Model GARCH hemat (parsimonious) jika:
    • likelihood tinggi
    • dan jumlah parameter relatif sedikit
Model GARCH di R

Kriteria informasi

  • Kehematan diukur dengan kriteria informasi.

kriteria informasi = - likelihood + penalti(jumlah parameter)

  • Semakin rendah, semakin baik.

Aturan praktis:
Pilih model dengan kriteria informasi terendah.

Model GARCH di R

Hasil kriteria informasi

Metode infocriteria() menampilkan kriteria informasi untuk berbagai penalti

infocriteria(tgarchfit)

out Akaike -7.468081 Bayes -7.462833 Shibata -7.468083 Hannan-Quinn -7.466241 `

Interpretasi perlu membandingkan dengan kriteria informasi dari model lain.

Model GARCH di R

Ilustrasi pada return EUR/USD

tgarchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
   variance.model = list(model = "sGARCH", variance.targeting = TRUE),
   distribution.model = "std")
tgarchfit <- ugarchfit(data = EURUSDret, spec = tgarchspec)
length(coef(tgarchfit)) # only 5 parameters
likelihood(tgarchfit)   # equals 18528.58
flexgarchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
   variance.model = list(model = "gjrGARCH"), distribution.model = "sstd")
flexgarchfit <- ugarchfit(data = EURUSDret, spec = flexgarchspec)
length(coef(flexgarchfit)) # we now have 8 parameters
likelihood(flexgarchfit) #  18530.49: likelihood increased
Model GARCH di R

Model mana yang paling hemat untuk return EUR/USD?

Likelihood lebih tinggi lebih baik. Kriteria informasi lebih rendah lebih baik.

infocriteria(tgarchfit) # Model sederhana
Akaike       -7.468435
Bayes        -7.464499
infocriteria(flexgarchfit) # Model kompleks
Akaike       -7.467239
Bayes        -7.456742

Model sederhana memiliki kriteria informasi terendah dan sebaiknya dipilih di sini.

Model GARCH di R

Hasil bergantung kasus: return MSFT

tgarchfit <- ugarchfit(data = msftret, spec = tgarchspec)
flexgarchfit <- ugarchfit(data = msftret, spec = flexgarchspec)
infocriteria(tgarchfit)
Akaike       -5.481895
Bayes        -5.477833
infocriteria(flexgarchfit) 
Akaike       -5.489087
Bayes        -5.478255

Model kompleks memiliki kriteria informasi terendah dan sebaiknya dipilih di sini.

Model GARCH di R

KISS: Keep it Sophisticatedly Simple

Model GARCH di R

Preparing Video For Download...