messenger_logo
Liên hệ qua Messenger
SciEco

Tạo dữ liệu giả lập đa biến với r-vine copula bằng thư viện esgtoolkit trong r

I
IEFPA
Ngày viết: 08/06/2026

Trong phân tích tài chính và quản trị rủi ro, việc mô phỏng dữ liệu đồng thời của nhiều tài sản mà vẫn giữ nguyên được cấu trúc phụ thuộc phức tạp là một thách thức lớn. Các phương pháp mô hình hóa truyền thống thường dựa vào giả định phân phối chuẩn, vốn dễ dàng thất bại khi đối mặt với dữ liệu thực tế có phân phối đuôi dày hoặc mối quan hệ phi tuyến. Để giải quyết vấn đề này, phương pháp R-vine copula nổi lên như một công cụ mạnh mẽ, cho phép chúng ta ghép nối các phân phối biên khác nhau thành một phân phối chung một cách linh hoạt. Bài viết này sẽ hướng dẫn cách sử dụng thư viện esgtoolkit trong ngôn ngữ R để xây dựng mô hình R-vine copula và tạo dữ liệu giả lập chất lượng cao.

Tìm hiểu về R-vine copula và thư viện esgtoolkit

Copula là một hàm toán học dùng để liên kết các phân phối biên của các biến ngẫu nhiên đơn lẻ nhằm tạo ra một phân phối đồng thời. Trong số các cấu trúc copula, vine copula phân rã phân phối đồng thời đa chiều thành các cặp copula hai chiều thông qua một cấu trúc dạng cây liên kết. Điều này giúp kiểm soát tốt các mối quan hệ phụ thuộc không đối xứng ở vùng đuôi, một hiện tượng cực kỳ phổ biến trong dữ liệu tài chính khi thị trường sụt giảm mạnh cùng một lúc.

Thư viện esgtoolkit cung cấp một giao diện lập trình trực quan và tối ưu hóa để ước lượng các tham số của mô hình R-vine copula, đồng thời chạy các lượt mô phỏng thử nghiệm để tìm ra bộ dữ liệu giả lập khớp nhất với dữ liệu thực tế.

Quy trình mô phỏng dữ liệu với esgtoolkit

Để minh họa, chúng ta sẽ sử dụng bộ dữ liệu chỉ số chứng khoán châu Âu có sẵn trong R bao gồm các chỉ số DAX, SMI, CAC và FTSE. Quy trình thực hiện bao gồm cài đặt thư viện, tính toán tỷ suất sinh lợi logarit, ước lượng mô hình và tiến hành mô phỏng dữ liệu giả lập.

Cài đặt và chuẩn bị dữ liệu

Trước tiên, chúng ta cần cài đặt thư viện esgtoolkit trực tiếp từ nguồn mã nguồn mở GitHub và chuẩn bị dữ liệu lịch sử để huấn luyện mô hình.

1devtools::install_github("Techtonique/esgtoolkit")
2library(esgtoolkit)
3y <- esgtoolkit::calculatereturns(ts(EuStockMarkets[1:250, ], start=start(EuStockMarkets),
4                                     frequency=frequency(EuStockMarkets)), type = "log")
5# Chạy mô phỏng dữ liệu với 5 lượt thử nghiệm
6result <- simulate_rvine(y, n = 500, verbose = TRUE, n_trials = 5)
7# Hiển thị tóm tắt kết quả
8print(result)
9# Vẽ biểu đồ phân phối và tương quan
10plot(result, type = "distribution")
11plot(result, type = "correlation")
12# Truy cập thông tin chẩn đoán chi tiết
13str(result$diagnostics)
14# Trích xuất dữ liệu mô phỏng
15sim_data <- result$simulated_data
16head(sim_data)

Phân tích kết quả mô hình

Quá trình chạy hàm mô phỏng sẽ tự động chuyển đổi dữ liệu thực tế sang phân phối đều ở các rìa biên để xử lý các điểm biên tốt hơn. Sau đó, hệ thống tiến hành khớp cấu trúc R-vine copula phù hợp nhất dựa trên tiêu chí thông tin để tối ưu hóa cấu trúc cây.

Kết quả ước lượng cấu trúc cây cho thấy các cặp biến được liên kết bằng nhiều họ copula khác nhau tùy thuộc vào đặc tính phụ thuộc của chúng. Ví dụ, mối quan hệ giữa một số cặp chỉ số được mô tả bằng phân phối chuẩn, trong khi các cặp khác lại sử dụng các họ phân phối có đuôi bất đối xứng để phản ánh chính xác xu hướng biến động đồng thời khi thị trường có biến động mạnh.

Với 5 lượt mô phỏng thử nghiệm, thuật toán tự động chọn ra lượt có điểm số chất lượng tốt nhất là khoảng 0.0984. Sai số tuyệt đối trung bình của hệ số tương quan Kendall và Pearson lần lượt là 0.0077 và 0.0428, chứng minh dữ liệu giả lập có độ tương quan cực kỳ sát với dữ liệu gốc ban đầu.

Kiểm định chất lượng dữ liệu giả lập

Bên cạnh việc so sánh hệ số tương quan, chúng ta cũng có thể truy cập các thông số chẩn đoán chi tiết để đánh giá mức độ tương đồng về mặt phân phối thông qua kiểm định Kolmogorov-Smirnov. Giá trị p-value lớn của kiểm định này cho cả bốn chỉ số chứng khoán cho thấy không có sự khác biệt có ý nghĩa thống kê giữa phân phối của dữ liệu mô phỏng và dữ liệu gốc. Điều này đảm bảo dữ liệu giả lập hoàn toàn có thể được dùng tin cậy cho các mô hình kiểm thử áp lực hoặc định giá tài sản tài chính phức tạp.

Dữ liệu mô phỏng thu được

Dưới đây là một vài dòng dữ liệu đầu tiên trong số 500 quan sát giả lập được tạo ra cho các chỉ số DAX, SMI, CAC và FTSE, thể hiện rõ các đặc tính biến động đồng thời của thị trường thực tế:

Dữ liệu mô phỏng mẫu:

Dòng 1: DAX là -0.001398544, SMI là -0.0015309795, CAC là 0.003170410, FTSE là 0.0008758254

Dòng 2: DAX là 0.004458917, SMI là 0.0026640098, CAC là 0.011666435, FTSE là 0.0057322484

Dòng 3: DAX là -0.001597764, SMI là -0.0001979084, CAC là -0.004832143, FTSE là 0.0011097778

Dòng 4: DAX là -0.001501251, SMI là -0.0034774275, CAC là -0.003218613, FTSE là 0.0020315141

Dòng 5: DAX là 0.000000000, SMI là 0.0045969506, CAC là 0.001912011, FTSE là -0.0044810433

Dòng 6: DAX là -0.002419004, SMI là -0.0004654500, CAC là -0.004832588, FTSE là -0.0055430360

✨ Giá trị đắt giá: Việc mô phỏng dữ liệu đa biến bằng R-vine copula giúp các nhà nghiên cứu và phân tích định lượng vượt qua giới hạn của các giả định phân phối chuẩn truyền thống. Bằng cách bảo toàn chính xác cấu trúc tương quan đuôi phi tuyến tính giữa các tài sản tài chính, công cụ này giúp các kịch bản kiểm thử rủi ro trở nên thực tế và chuẩn xác hơn bao giờ hết, tránh hiện tượng đánh giá thấp rủi ro hệ thống trong các giai đoạn thị trường căng thẳng.

Câu hỏi tư duy: Hãy thử thay đổi số lượng thử nghiệm mô phỏng và trọng số đánh giá chất lượng trong mô hình để quan sát sự thay đổi của sai số tương quan Kendall và Pearson. Theo bạn, khi số lượng biến số tăng lên quá lớn, cấu trúc dạng cây của R-vine copula sẽ gặp phải những thách thức gì về mặt hiệu năng tính toán và làm thế nào để tối ưu hóa điều đó?


Bài viết khác
Trong nghiên cứu thực nghiệm, việc thực hiện nhiều phép so sánh cặp cùng một lúc là vô cùng phổ biến. Tuy nhiên, nếu chúng ta chỉ sử dụng các kiểm định t thông thường mà không hiệu chỉnh, tỷ lệ sai số loại một trên toàn bộ họ kiểm định sẽ tăng lên rất nhanh. Khi đó, việc sử dụng các giá trị p hiệu chỉnh là bắt buộc để đảm bảo tính tin cậy của các kết luận thống kê. Bài viết này sẽ hướng dẫn cách xử lý vấn đề đa so sánh bằng gói lệnh emmeans trong ngôn ngữ R, đồng thời giải thích bản chất thống kê từ phân phối đơn biến đến đa biến. Thực Nghiệm Và Mô Hình Phân Tích Phương Sai Một Chiều Chúng ta sẽ bắt đầu với một bộ dữ liệu thực tế về khả năng diệt cỏ của ba hỗn hợp hóa chất so với nhóm đối chứng không xử lý trên cây cỏ dại thuộc họ cà trong ruộng cà chua. Biến phản hồi là khối lượng của cây cỏ dại trong mỗi chậu, và biến giải thích là các công thức xử lý cỏ.
Thư viện flextable phiên bản mới nhất 0.9.11 đã chính thức xuất hiện trên CRAN, mang lại những cải tiến vượt trội giúp đơn giản hóa quy trình báo cáo dữ liệu của bạn. Trong bản cập nhật lần này, hai tính năng nổi bật nhất chính là sự tích hợp mượt mà với patchwork và khả năng hỗ trợ định dạng Quarto trực tiếp trong từng ô dữ liệu thông qua hàm as_qmd. Hãy cùng khám phá xem những công cụ này sẽ thay đổi cách chúng ta thiết kế các bảng biểu báo cáo khoa học dữ liệu như thế nào. Tích hợp patchwork: Thiết kế bố cục biểu đồ và bảng số liệu chuyên nghiệp Trước đây, việc căn chỉnh một bảng số liệu nằm song song hoặc đồng bộ với một biểu đồ thường đòi hỏi rất nhiều công sức căn chỉnh thủ công. Giờ đây, với sự hỗ trợ của patchwork, quy trình này trở nên vô cùng đơn giản. Hàm mới wrap_flextable cho phép biến đổi các đối tượng flextable thành các thành phần có thể dễ dàng ghép nối bằng các toán tử cộng, vạch đứng hoặc gạch chéo của patchwork. Để minh họa, chúng ta sẽ xây dựng một biểu đồ quả tạ biểu diễn số liệu thống kê của các đội bóng tại giải Bundesliga, sau đó ghép nối nó với một bảng số liệu tương ứng.
SciEco
Science for Economics
Định hướng đào tạo phân tích dữ liệu, xây dựng chính sách, tối ưu hoá danh mục tài chính cá nhân và dự báo thị trường.
Liên hệ
Địa chỉ: Số 60, ngõ 41, Phố Thái Hà, Trung Liệt, Đống Đa, Hà Nội (Google Map)
Email: science.for.economics@gmail.com
Hotline: 03.57.94.7680 (Mrs. Hà)
Mạng xã hội