Value-at-risk

GARCH Models in R

Kris Boudt

Professor of finance and econometrics

Value-at-risk

  • ตัววัดความเสี่ยงขาลงที่นิยมใช้: 5% value-at-risk โดย 5% quantile ของการกระจายผลตอบแทนแสดงถึงผลตอบแทนที่ดีที่สุดใน 5% ของสถานการณ์เลวร้ายที่สุด
    การกระจายของผลตอบแทนรายวันต่อปี
GARCH Models in R

การกระจายของผลตอบแทนรายวันต่อปี

GARCH Models in R

จำเป็นต้องใช้แนวทางมองไปข้างหน้า

  • Quantile ของ rolling window ของผลตอบแทนมองย้อนหลัง:
    • คำถาม ex post: 5% quantile ของผลตอบแทนรายวันในช่วงปีที่ผ่านมาเป็นเท่าใด
    • คำถาม ex ante: 5% quantile ของการกระจายที่คาดการณ์สำหรับผลตอบแทนในอนาคตเป็นเท่าใด
  • การบริหารความเสี่ยงแบบมองไปข้างหน้าใช้ quantile ที่คาดการณ์จากการประมาณ GARCH
  • วิธีการ: ใช้เมธอด quantile() กับออบเจกต์ ugarchroll
GARCH Models in R

ขั้นตอนการหา 5% quantile ที่คาดการณ์จาก ugarchroll

ugarchspec(): ระบุโมเดล GARCH ที่ต้องการใช้

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "gjrGARCH"),
                        distribution.model = "sstd")

ugarchroll(): ประมาณโมเดล GARCH บนตัวอย่างการประมาณแบบ rolling

garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500, 
                        refit.window = "moving", refit.every = 100)

quantile(): คำนวณ quantile ที่คาดการณ์

garchVaR <- quantile(garchroll, probs = 0.05)

สามารถเลือกความน่าจะเป็นของการขาดทุนอื่นได้: 1% และ 2.5% ก็เป็นที่นิยมเช่นกัน

GARCH Models in R

กราฟ Value-at-risk สำหรับความน่าจะเป็นของการขาดทุน 5%

actual <- xts(as.data.frame(garchroll)$Realized, time(garchVaR))
VaRplot(alpha = 0.05, actual = actual, VaR = garchVaR)

การกระจายของผลตอบแทนรายวันต่อปี

GARCH Models in R

Exceedance และ VaR coverage

VaR exceedance เกิดขึ้นเมื่อผลตอบแทนจริงต่ำกว่า value-at-risk ที่คาดการณ์: $ R_t \ < {VaR}_t$

ความถี่ของ VaR exceedance เรียกว่า VaR coverage

# Calculation of coverage for S&P 500 returns and 5% probability level
mean(actual < garchVaR)
0.05159143
GARCH Models in R

VaR coverage และการตรวจสอบความถูกต้องของโมเดล

  • การตีความ coverage สำหรับ VaR ที่ความน่าจะเป็นของการขาดทุน $\alpha$ (เช่น 5%):
    • โมเดลที่คาดการณ์ได้ดีจะมี coverage ใกล้เคียงกับระดับความน่าจะเป็น $\alpha$ ที่ใช้
    • ถ้า coverage $\gg$ $\alpha$: มี exceedance มากเกินไป ควรให้ quantile ที่คาดการณ์เป็นค่าลบมากกว่านี้ ซึ่งแปลว่าประเมินความเสี่ยงของการขาดทุนต่ำเกินไป
    • ถ้า coverage $\ll$ $\alpha$: มี exceedance น้อยเกินไป quantile ที่คาดการณ์เป็นค่าลบมากเกินไป ซึ่งแปลว่าประเมินความเสี่ยงของการขาดทุนสูงเกินไป
GARCH Models in R

ปัจจัยที่ทำให้ประสิทธิภาพลดลง

distribution.model = "std" แทน distribution.model = "sstd":

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "gjrGARCH"),
                        distribution.model = "std")

การประมาณแบบ rolling และการคาดการณ์ 5% VaR:

garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500, 
                        refit.window = "moving", refit.every = 100)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # returns 0.05783233
GARCH Models in R

ประสิทธิภาพที่ลดลงอีก

variance.model = list(model = "sGARCH")

แทน

variance.model = list(model = "gjrGARCH"):

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

การประมาณแบบ rolling และการคาดการณ์ 5% VaR:

garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500, 
                        refit.window = "moving", refit.every = 100)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # returns 0.06074475
GARCH Models in R

ประสิทธิภาพที่ลดลงมากยิ่งขึ้น

refit.every = 1000

แทน

refit.every = 100:

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
garchroll <- ugarchroll(garchspec, data = sp500ret, n.start = 2500, 
                        refit.window = "moving", refit.every = 1000)
garchVaR <- quantile(garchroll, probs = 0.05)
mean(actual < garchVaR) # returns 0.06199293
GARCH Models in R

ความเสี่ยงขาลงหมายถึงการคิดเกี่ยวกับ quantile ที่คาดการณ์

GARCH Models in R

Preparing Video For Download...