ตรวจสอบสมมติฐานเกี่ยวกับค่าเฉลี่ยและความแปรปรวน

GARCH Models in R

Kris Boudt

Professor of finance and econometrics

การตรวจสอบที่ 1: ค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของผลตอบแทนมาตรฐาน

สูตรผลตอบแทนมาตรฐาน

$$ Z_{t} = \frac{R_{t} - \hat{\mu_{t}}}{ \hat{\sigma_{t}}} $$

  • การตรวจสอบความถูกต้องของโมเดลครั้งที่ 1:
    • ค่าเฉลี่ยตัวอย่างของผลตอบแทนมาตรฐาน $\approx$ 0
    • ส่วนเบี่ยงเบนมาตรฐานของผลตอบแทนมาตรฐาน $\approx$ 1
GARCH Models in R

การตรวจสอบที่ 2: กราฟอนุกรมเวลาของผลตอบแทนมาตรฐาน

  • การตรวจสอบความถูกต้องของโมเดลครั้งที่ 2:
    • กราฟอนุกรมเวลาของผลตอบแทนมาตรฐาน
    • ผลตอบแทนมาตรฐานควรมีความแปรปรวนคงที่
GARCH Models in R

GARCH Models in R

GARCH Models in R

การตรวจสอบที่ 3: ไม่มีความสามารถในการพยากรณ์จากค่าสัมบูรณ์ของผลตอบแทนมาตรฐาน

  • การตรวจสอบความถูกต้องของโมเดลครั้งที่ 3:

    • ตรวจสอบว่าไม่มีความสัมพันธ์ระหว่างค่าสัมบูรณ์ของผลตอบแทนมาตรฐานในอดีตกับปัจจุบัน
    • กล่าวคือ: $ Corr(|Z_{t-k}|, |Z_{t}|) \approx 0, $ สำหรับ $k>0$
  • เหตุใด?

    • ขนาดของค่าสัมบูรณ์ของผลตอบแทนมาตรฐานควรคงที่ $\rightarrow$ จึงไม่ควรมีความสัมพันธ์อัตโนมัติ
GARCH Models in R

ออโตคอร์รีเลชัน

  • ความสัมพันธ์ภายในอนุกรมเวลาเรียกว่า ออโตคอร์รีเลชันอันดับ k
    • $k=1$: $Corr(|Z_{t-1}|, |Z_{t}|)$: ความสัมพันธ์ระหว่างค่าสัมบูรณ์ของผลตอบแทนมาตรฐานปัจจุบันกับค่าก่อนหน้า
    • $k=2$: $Corr(|Z_{t-2}|, |Z_{t}|)$: ความสัมพันธ์ระหว่างค่าสัมบูรณ์ของผลตอบแทนมาตรฐานปัจจุบันกับค่าเมื่อสองช่วงก่อน
    • ...
  • ทั้งหมดนี้ควรเท่ากับ 0 ยกเว้น:
    • $k=0$: $Corr(|Z_{t}|, |Z_{t}|)$: ความสัมพันธ์ของค่าสัมบูรณ์ของผลตอบแทนมาตรฐานกับตัวเอง: เท่ากับ 1
GARCH Models in R

acf()

  • ใน R สามารถคำนวณออโตคอร์รีเลชันได้ด้วยฟังก์ชัน acf()
    • อินพุต: อนุกรมเวลา, อันดับสูงสุด
    • เอาต์พุต: correlogram — กราฟแสดงค่าออโตคอร์รีเลชันในแต่ละอันดับ $k = 0, 1, ...$
GARCH Models in R

การประยุกต์ใช้กับ MSFT

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "gjrGARCH"),
                        distribution.model = "sstd")
garchfit <- ugarchfit(data = msftret, spec = garchspec)
stdmsftret <- residuals(garchfit, standardize = TRUE)
acf(abs(msftret), 22)
acf(abs(stdmsftret), 22)
GARCH Models in R

GARCH Models in R

การตรวจสอบที่ 4: การทดสอบ Ljung-Box

  • การตรวจสอบความถูกต้องของโมเดลครั้งที่ 4:
    • การทดสอบ Ljung-Box ว่าออโตคอร์รีเลชัน k อันดับแรกของค่าสัมบูรณ์ผลตอบแทนมาตรฐาน $|Z_t|$ เท่ากับศูนย์: $$ H_0: Corr(|Z_t|,|Z_{t-1}|) = Corr(|Z_t|,|Z_{t-2}|) = ... = Corr(|Z_t|,|Z_{t-k}|) = 0 $$
    • คล้ายกับ $t$-test สำหรับนัยสำคัญทางสถิติ แต่ที่นี่ต้องการให้ได้ค่า 0 จึงจะถือว่าโมเดลดี

กฎเบื้องต้น: หาก p-value น้อยกว่า 5% แสดงว่าโมเดลที่ใช้ไม่ถูกต้อง

GARCH Models in R

การทดสอบ Ljung-Box ใน R

  • ใน R: ใช้ฟังก์ชัน Box.test() พร้อมอาร์กิวเมนต์ 3 ตัว:
    • อนุกรมเวลา
    • อันดับสูงสุดที่ออโตคอร์รีเลชันเท่ากับศูนย์
    • type = "Ljung-Box"

ตัวอย่าง:

Box.test(abs(stdmsftret), 22, type = "Ljung-Box")
  • เอาต์พุต: p-value
    • กฎเบื้องต้น: หาก p-value น้อยกว่า 5% แสดงว่าโมเดลที่ใช้ไม่ถูกต้อง
GARCH Models in R

Box.test โดยใช้ค่าสัมบูรณ์ผลตอบแทนมาตรฐานของ MSFT

ทดสอบกับค่าสัมบูรณ์ของผลตอบแทนมาตรฐาน:

Box.test(abs(stdmsftret), 22, type = "Ljung-Box")
    Box-Ljung test
data:  abs(stdmsftret)
X-squared = 25.246, df = 22, p-value = 0.2855

หมายเหตุ: p-value คือ 28.55% > 5% จึงไม่สามารถปฏิเสธว่า: $$ H_0: Corr(|Z_t|,|Z_{t-1}|) = Corr(|Z_t|,|Z_{t-2}|) = ... = Corr(|Z_t|,|Z_{t-22}|) = 0 $$

GARCH Models in R

มาวินิจฉัยค่าสัมบูรณ์ของผลตอบแทนมาตรฐานกันเถอะ

GARCH Models in R

Preparing Video For Download...