Ước lượng mật độ nhân

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

Jamsheed Shorish

Computational Economist

Xem lại biểu đồ tần suất

  • Phân phối nhân tố rủi ro
    • Giả định (ví dụ: Chuẩn, T, ... )
    • Ước lượng (tham số, mô phỏng Monte Carlo)
    • Bỏ qua (mô phỏng lịch sử)
  • Dữ liệu thực: biểu đồ tần suất
  • Biểu diễn biểu đồ tần suất bằng phân phối xác suất thế nào?
    • Làm mượt dữ liệu bằng lọc
    • Ước lượng phi tham số

biểu đồ tần suất các mức lỗ

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất

trục của biểu đồ tần suất

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất
  • Quan sát tích lũy theo thời gian

ảnh các quan sát tích lũy

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất
  • Quan sát tích lũy theo thời gian

ảnh các quan sát tích lũy

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất
  • Quan sát tích lũy theo thời gian

ảnh các quan sát tích lũy

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất
  • Quan sát tích lũy theo thời gian
  • Chọn một mức lỗ danh mục cụ thể

các mức lỗ và một mức lỗ được chọn bằng mũi tên

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất
  • Quan sát tích lũy theo thời gian
  • Chọn một mức lỗ danh mục cụ thể
    • Xem các mức lỗ lân cận

cửa sổ nhân chồng lên các quan sát

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất
  • Quan sát tích lũy theo thời gian
  • Chọn một mức lỗ danh mục cụ thể
    • Xem các mức lỗ lân cận
    • Tạo “trung bình có trọng số” của các mức lỗ
  • Kernel (nhân): lựa chọn bộ lọc; quyết định “cửa sổ”

trung bình có trọng số từ nhân hiển thị trên ảnh

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất
  • Quan sát tích lũy theo thời gian
  • Chọn một mức lỗ danh mục cụ thể
    • Xem các mức lỗ lân cận
    • Tạo “trung bình có trọng số” của các mức lỗ
  • Kernel (nhân): lựa chọn bộ lọc; quyết định “cửa sổ”
    • Di chuyển cửa sổ đến mức lỗ khác

ảnh vị trí nhân thứ hai

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

Làm mượt dữ liệu

  • Bộ lọc: làm mượt các “gợn” của biểu đồ tần suất
  • Quan sát tích lũy theo thời gian
  • Chọn một mức lỗ danh mục cụ thể
    • Xem các mức lỗ lân cận
    • Tạo “trung bình có trọng số” của các mức lỗ
  • Kernel (nhân): lựa chọn bộ lọc; quyết định “cửa sổ”
    • Di chuyển cửa sổ đến mức lỗ khác
  • Ước lượng mật độ nhân (KDE): mật độ xác suất

ảnh ước lượng mật độ nhân

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

Nhân Gaussian

  • Nhân liên tục
  • Gán trọng số cho mọi quan sát theo khoảng cách tới tâm
  • Nói chung: có nhiều loại nhân khác nhau
    • Dùng trong phân tích chuỗi thời gian
    • Dùng trong xử lý tín hiệu

ảnh nhân Gaussian

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

KDE trong Python

from scipy.stats import gaussian_kde

kde = guassian_kde(losses)
loss_range = np.linspace(np.min(losses), np.max(losses), 1000)
plt.plot(loss_range, kde.pdf(loss_range))
  • Trực quan hóa: hàm mật độ xác suất từ KDE đã khớp

đồ thị ước lượng kde Gaussian

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

Tìm VaR bằng KDE

  • VaR: dùng phương thức .resample() của gaussian_kde
  • Tìm phân vị của mẫu thu được
  • CVaR: kỳ vọng như trước, nhưng
    • gaussian_kde không có .expect() => tự tính tích phân
    • đã viết phương thức .expect() đặc biệt cho bài tập
sample = kde.resample(size = 1000)

VaR_99 = np.quantile(sample, 0.99)
print("VaR_99 from KDE: ", VaR_99)
VaR_99 from KDE: 0.08796423698448601
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...