Hindari kompleksitas yang tidak perlu

Model GARCH di R

Kris Boudt

Professor of finance and econometrics

Hindari kompleksitas yang tidak perlu

  • Jika Anda tahu
    • Dinamika mean dapat diabaikan
    • Tidak ada efek leverage pada varians
    • Distribusi simetris dan berekor tebal

Maka mean konstan, GARCH(1, 1) standar dengan distribusi t-Student adalah spesifikasi yang sesuai:

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
Model GARCH di R

Batasi estimasi parameter

  • Jika Anda tahu parameter
    • bernilai tertentu
    • atau berada dalam suatu interval
  • Maka terapkan pada spesifikasi dengan metode
    • setfixed()
    • setbounds()
Model GARCH di R

Aplikasi pada nilai tukar

Spesifikasi dan estimasi

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)

Hasil estimasi

coef(garchfit)
           mu         omega        alpha1         beta1         shape 
-3.562136e-05  8.005123e-08  3.097322e-02  9.674496e-01  8.821902e+00
Model GARCH di R

Contoh setfixed()

  • Jika Anda tahu alpha1 = 0.05 dan shape = 6: tetapkan nilai tersebut saat estimasi.
  • Caranya? Gunakan metode setfixed() pada objek ugarchspec
setfixed(garchspec) <- list(alpha1 = 0.05, shape = 6)

Hasil

garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)

coef(garchfit)
           mu         omega        alpha1         beta1         shape 
-4.142922e-05  2.061772e-07  5.000000e-02  9.489622e-01  6.000000e+00
Model GARCH di R

Batas parameter

  • Parameter GARCH dapat dibatasi pada suatu interval.
  • Kadang interval nilai yang masuk akal besar:
    • Untuk memastikan varians positif, mis. semua parameter varians ($\omega$, $\alpha$, $\beta$, $\gamma$) harus positif.
  • Kadang interval nilai yang masuk akal lebih kecil:
    • Nilai $\alpha$ yang mungkin antara 0,05 dan 0,2
    • Nilai $\beta$ yang mungkin antara 0,7 dan 0,95
  • Batas seperti ini dapat diterapkan dengan metode setbounds().
Model GARCH di R

Contoh setbounds()

setbounds(garchspec) <- list(alpha1 = c(0.05, 0.2), beta1 = c(0.8, 0.95))
Model GARCH di R

Gunakan intuisi untuk menghindari kompleksitas yang tidak perlu.

Gunakan informasi yang Anda punya:

  • untuk membangun model yang sederhana (dan cerdas)
  • untuk menetapkan nilai parameter atau batasnya
  • untuk membuat dinamika GARCH realistis:

    • mean reversion volatilitas sekitar simpangan baku sampel
      sd(EURUSDret) # returns a value of 0.006194049
      
Model GARCH di R

Klaster volatilitas dan mean reversion volatilitas

Model GARCH di R

Variance targeting

  • Secara matematis, ini berarti varians tak bersyarat yang diimplikasikan model GARCH sama dengan varians sampel $\hat \sigma^2$.
  • Caranya? Dengan menyetel argumen variance.targeting = TRUE di variance.model pada ugarchspec():
garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
                        variance.model = list(model = "sGARCH",
                        variance.targeting = TRUE),
                        distribution.model = "std")
garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)
all.equal(uncvariance(garchfit), sd(EURUSDret) ^ 2, tol = 1e-4)
TRUE
Model GARCH di R

Mari tetapkan pembatas pada model GARCH

Model GARCH di R

Preparing Video For Download...