Đứt gãy cấu trúc

Quản trị Rủi ro Định lượng với Python

Jamsheed Shorish

Computational Economist

Rủi ro và phân phối

  • Bộ công cụ quản trị rủi ro
    • Giảm thiểu rủi ro: MPT
    • Đo lường rủi ro: VaR, CVaR
  • Rủi ro: độ phân tán, biến động
    • Phương sai (độ lệch chuẩn) như định nghĩa rủi ro
  • Liên hệ giữa rủi ro và phân phối của nhân tố rủi ro như biến ngẫu nhiên
Quản trị Rủi ro Định lượng với Python

Tính dừng (Stationarity)

  • Giả định: phân phối giữ nguyên theo thời gian
  • Phân phối không đổi = dừng (stationary)
  • Biên hiệu quả giai đoạn khủng hoảng tài chính toàn cầu
    • Không dừng
  • Kỹ thuật ước lượng yêu cầu tính dừng
    • Lịch sử: phân phối dừng không biết từ dữ liệu quá khứ
    • Tham số: giả định lớp phân phối dừng
    • Monte Carlo: giả định phân phối dừng cho mẫu ngẫu nhiên
Quản trị Rủi ro Định lượng với Python

Đứt gãy cấu trúc

  • Không dừng => có thể phân phối thay đổi theo thời gian
  • Giả sử các thời điểm cụ thể có thay đổi
    • Chia dữ liệu thành giai đoạn con
    • Trong mỗi giai đoạn con, giả định tính dừng
  • Đứt gãy cấu trúc: thời điểm thay đổi
    • Thay đổi 'xu hướng' của trung bình và/hoặc biến động dữ liệu
Quản trị Rủi ro Định lượng với Python

Ví dụ: Tăng dân số Trung Quốc

  • Xem giai đoạn 1950 - 2019
  • Xu hướng gần như tuyến tính...

Biểu đồ dân số Trung Quốc theo thời gian, 1950-2019

Quản trị Rủi ro Định lượng với Python

Ví dụ: Tăng dân số Trung Quốc

  • Xem giai đoạn 1950 - 2019
  • Xu hướng gần như tuyến tính...
  • ...nhưng có vẻ chậm lại từ khoảng 1990
  • Có thể có đứt gãy cấu trúc gần 1990.
  • Hàm ý phân phối dân số thuần (sinh - tử) đã thay đổi
  • Nguyên nhân có thể: chính sách, mức sống, v.v.

Biểu đồ dân số Trung Quốc theo thời gian với mũi tên xu hướng, 1950-2019

Quản trị Rủi ro Định lượng với Python

Kiểm định Chow

  • Ví dụ trước: bằng chứng trực quan về đứt gãy cấu trúc
  • Định lượng: thước đo thống kê
  • Kiểm định Chow:
    • Kiểm tra sự tồn tại đứt gãy cấu trúc với mô hình tuyến tính
    • Giả thuyết không: không có đứt gãy
    • Cần ba hồi quy OLS
      • Hồi quy cho giai đoạn toàn bộ
      • Hai hồi quy, trướcsau điểm gãy
    • Thu thập tổng bình phương sai số (SSR)
    • Thống kê kiểm định tuân theo phân phối F
Quản trị Rủi ro Định lượng với Python

Kiểm định Chow trong Python

  • Giả thuyết: đứt gãy cấu trúc năm 1990 cho dân số Trung Quốc
  • Giả sử mô hình nhân tố tuyến tính: $$\log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t$$
  • Hồi quy OLS dùng statsmodels's OLS cho toàn kỳ 1950 - 2019
    • Lấy tổng bình phương sai số res.ssr
import statsmodels.api as sm
res = sm.OLS(log_pop, year).fit()

print('SSR 1950-2019: ', res.ssr)
SSR 1950-2019: 0.29240576138055463
Quản trị Rủi ro Định lượng với Python

Kiểm định Chow trong Python

  • Chia 1950 - 2019 thành hai giai đoạn: 1950 - 19891990 - 2019
  • Chạy OLS cho từng giai đoạn
    • Lấy res_before.ssrres_after.ssr
pop_before = log_pop.loc['1950':'1989']; year_before = year.loc['1950':'1989'];
pop_after  = log_pop.loc['1990':'2019']; year_after =  year.loc['1990':'2019'];

res_before = sm.OLS(pop_before, year_before).fit() res_after = sm.OLS(pop_after, year_after).fit()
print('SSR 1950-1989: ', res_before.ssr) print('SSR 1990-2019: ', res_after.ssr)
SSR 1950-1989: 0.011741113017411783
SSR 1990-2019: 0.0013717593339608077
Quản trị Rủi ro Định lượng với Python

Kiểm định Chow trong Python

  • Tính thống kê kiểm định Chow có phân phối F
    • Tính tử số
      • k = 2 bậc tự do = 2 hệ số OLS $\alpha$, $\beta$
    • Tính mẫu số
      • 66 bậc tự do = tổng số điểm dữ liệu (70) - 2*k
numerator = (ssr_total - (ssr_before + ssr_after)) / 2

denominator = (ssr_before + ssr_after) / 66
chow_test = numerator / denominator print("Chow test statistic: ", chow_test, "; Critical value, 99.9%: ", 7.7)
Chow test statistic: 702.8715822890057; Critical value, 99.9%: 7.7
Quản trị Rủi ro Định lượng với Python

Ayo berlatih!

Quản trị Rủi ro Định lượng với Python

Preparing Video For Download...