Mục lục
Nội dung này phục vụ mục đích giáo dục, không phải lời khuyên đầu tư hoặc tín hiệu giao dịch.
Trả lời ngắn: Monte Carlo mô phỏng bằng cách lấy mẫu lặp từ phân phối đầu vào, đưa mỗi bộ mẫu qua cùng công thức rồi gom đầu ra thành phân phối. Nó cho biết hệ quả của giả định đã khai báo; không tự xác nhận giả định, nhìn thấy tương lai hay bảo đảm kết quả thực tế.
Đọc xong, bạn sẽ hiểu:
- Đi từ giả định đầu vào đến nhiều đầu ra mà không nhầm mô phỏng với dự báo.
- Đọc trung vị, P5/P95 và tỷ lệ dưới mốc của một đợt đã đóng băng.
- Tự dựng bài Google Sheets 15 phút và biết lúc nào phải dừng.
Forecasting #38 đưa ra ước lượng có điều kiện tại một mốc. Bài này cho đầu vào thay đổi theo quy tắc đã khai báo rồi quan sát cả đám đầu ra.
1. Monte Carlo làm gì? Biến một bộ giả định thành nhiều đầu ra
Hãy hình dung một túi thẻ có 60 thẻ xanh và 40 thẻ đỏ. Nếu ta bốc, ghi màu, bỏ thẻ lại rồi lặp 1.000 lần, bảng đếm mô tả chiếc túi đã được khai báo. Nó không chứng minh một chiếc túi ngoài đời thật cũng có tỷ lệ 60/40.
Monte Carlo vận hành cùng kỷ luật đó trên máy tính. Một lượt chạy là một lần lấy bộ đầu vào rồi tính một đầu ra. Bộ giá trị cụ thể trong lượt đó là một kịch bản. Sau nhiều lượt, cách các đầu ra trải ra tạo thành phân phối mô phỏng.
Quy trình có bốn trạm:
- Khóa phân phối, tham số và quan hệ của đầu vào.
- Bốc một bộ giá trị theo các quy tắc ấy.
- Đưa bộ giá trị qua cùng một mô hình, tức công thức biến đầu vào thành đại lượng cần xem.
- Gom đầu ra rồi tóm tắt trung tâm, độ rộng và phần đuôi.
NIST gọi lấy mẫu Monte Carlo (Monte Carlo sampling) là thí nghiệm máy tính dùng số ngẫu nhiên để ước lượng phân phối đầu ra. JCGM 101 truyền phân phối đầu vào qua mô hình toán học (NIST Glossary, BIPM JCGM 101:2008).
Với chi phí bữa cơm, ta có thể bốc giá rau, số người ăn và phí giao. Quên tiền gas thì 100.000 lượt vẫn lặp một công thức thiếu.
Hình 1 — Nhiều đầu ra chỉ mô tả bộ giả định đã khóa và cùng một mô hình.
2. Bốn khóa phải chốt trước nút Chạy
Khóa 1 — Mô hình và đầu ra. Viết rõ công thức, đơn vị, chân trời và câu hỏi. “Mô phỏng giá” quá mơ hồ; “mô phỏng giá trị cuối một kỳ, bắt đầu từ 100” mới kiểm được.
Khóa 2 — Phân phối và tham số. Phân phối đầu vào cho biết giá trị có thể xuất hiện và mức thường gặp theo giả định. Tham số điều khiển quy tắc đó, như trung bình và độ lệch chuẩn. Ghi nguồn ước lượng, cửa sổ dữ liệu và lý do chọn dạng phân phối. NIST yêu cầu đặc tả biến, phân phối và số vòng lặp trước khi lấy mẫu (NIST Monte Carlo Tool).
Khóa 3 — Phụ thuộc. Phụ thuộc nghĩa là hai đầu vào không thay đổi riêng rẽ. Ngày mưa có thể làm thời gian đi đường và phí giao cùng tăng. Bốc hai biến độc lập có thể tạo tổ hợp vô lý. Với chuỗi thời gian, FPP3 dùng lấy mẫu lại theo khối (blocked bootstrap) khi phần dư còn tự tương quan, thay vì xáo từng điểm (FPP3 — Bootstrapping and Bagging).
Khóa 4 — Giao thức đợt mô phỏng. Ghi số lượt, công cụ, mã đợt, chỉ số và tiêu chí ổn định. Mã khởi tạo (seed) giúp công cụ tái lập chuỗi giả ngẫu nhiên; không seed thường cho số khác (NumPy Random Sampling).
Không giải thích được một khóa thì đứng ngoài. Tăng lượt không thay thế dữ liệu hay mô hình thiếu.
3. Một đợt 1.000 lượt: từ giả định đến giá trị cuối
Ta dùng ví dụ hư cấu một kỳ, không phải dữ liệu thị trường:
- Giá trị đầu
V₀ = 100. - Tỷ lệ thay đổi
Rđược giả định theo phân phối chuẩn với trung bình0,5%và độ lệch chuẩn2%. - Giá trị cuối
V₁ = V₀ × (1 + R). - Số lượt
n = 1.000.
Phân phối chuẩn là đường chuông đối xứng, ở đây chỉ là giả định demo. Chưa có kiểm định nào nói nó phù hợp với tài sản thật.
Đợt MC39-A dùng bộ sinh giả ngẫu nhiên có seed 39, sau đó đóng băng 1.000 lượt. Kết quả tái tính:
| Chỉ số | Giá trị |
|---|---|
| Trung bình | 100,4721 |
| Trung vị | 100,4514 |
Tỷ lệ V₁ < 100 |
40,2% |
| P5 | 97,0254 |
| P95 | 103,7985 |
Hình 2 — Một đợt phải truy ngược được từ thống kê về đúng mô hình, tham số, số lượt và mã nhận diện.
Trong Google Sheets, RAND() trả số từ 0 đến dưới 1; NORMINV(x, mean, standard_deviation) đổi số đó sang phân phối chuẩn được khai báo (Google Sheets Function List). Công thức cốt lõi:
U = RAND()
R = NORMINV(U, 0,5%, 2%)
V₁ = 100 × (1 + R)
Sheets không nhận seed như NumPy; bấm Sheets sẽ cho kết quả khác MC39-A.
4. Đọc phân phối đầu ra, đừng săn một con số đẹp
Trung vị chia đôi các đầu ra đã sắp và ít bị vài giá trị cực đoan kéo mạnh hơn trung bình.
Phân vị (percentile) là ngưỡng của phân phối mô phỏng. P5 97,0254 nghĩa là khoảng 5% đầu ra trong đợt nằm thấp hơn hoặc bằng mốc đó. P95 103,7985 nghĩa là khoảng 95% nằm thấp hơn hoặc bằng. P5 không phải “lỗ tối đa”; P95 không phải trần chắc chắn.
Tỷ lệ này phải đọc đủ: 40,2% số lượt của mô hình này, dưới bộ giả định này, nằm dưới 100. Nó chưa phải xác suất thật.
FPP3 cho thấy phân phối dự báo có thể được biểu diễn bằng nhiều đường mô phỏng và khoảng lấy từ các mẫu bootstrap; số đường là một tham số tính toán, không phải bằng chứng mô hình đúng (FPP3 — Prediction Intervals).
Đừng chỉ báo trung bình. Thẻ tối thiểu cần trung vị, hai phân vị đuôi, tỷ lệ vượt/hụt mốc, số lượt và mã đợt.
5. Hai lớp bất định: lượt bốc và mô hình
Sai số Monte Carlo là dao động do số lượt hữu hạn. Thêm lượt thường làm thống kê bớt nhảy, giống cân cùng túi hàng nhiều lần.
Bất định mô hình đến từ công thức, phân phối, tham số, quan hệ đầu vào hoặc chế độ mô tả sai. Nếu cân lệch 200 gram, cân thêm 1.000 lần không sửa được. Nếu phân phối đầu vào sai, chạy thêm lượt chỉ cho kết quả sai ổn định hơn.
Để thấy ranh giới, giữ nguyên 1.000 số bốc của MC39-A, chỉ đổi độ lệch chuẩn từ 2% lên 4%:
| Cùng mô hình và lượt bốc | Độ lệch chuẩn 2% |
Độ lệch chuẩn 4% |
|---|---|---|
| Trung bình | 100,4721 |
100,4442 |
| Tỷ lệ dưới 100 | 40,2% |
45,9% |
| P5 | 97,0254 |
93,5508 |
| P95 | 103,7985 |
107,0969 |
Đây là kiểm tra độ nhạy: đổi một giả định có kiểm soát rồi xem đầu ra. Hai đuôi mở rộng dù trung bình gần nhau. Đổi cả độ lệch chuẩn lẫn bộ số bốc sẽ làm mờ so sánh.
Hình 3 — Giữ nguyên lượt bốc giúp cô lập tác động của giả định độ phân tán.
Ví dụ còn bỏ qua đuôi dày, phí, nhiều kỳ, phụ thuộc, đổi chế độ và sai số ước lượng tham số.
6. Sáu bẫy và bài Google Sheets 15 phút
Sáu bẫy phải chặn
- Chọn phân phối vì đẹp, không vì dữ liệu hoặc cơ chế.
- Bốc độc lập các đầu vào vốn thay đổi cùng nhau.
- Gọi P5 là mức lỗ tối đa hoặc gọi tỷ lệ mô phỏng là xác suất thật.
- Dùng rất nhiều lượt để che mô hình thiếu biến.
- So hai giả định bằng hai bộ số bốc khác nhau rồi quy mọi chênh lệch cho giả định.
- Không lưu mã đợt, số lượt, công thức và trạng thái đóng băng.
Bài Sheets miễn phí
Bài này dùng dữ liệu giả, 15 phút và chưa dùng tiền thật:
- H1:H4 nhập lần lượt
100,0,5%,2%,100. - A2:A1001 nhập số lượt 1–1.000.
- B2 nhập
=RAND(). - C2 nhập
=NORMINV(B2,$H$2,$H$3). - D2 nhập
=$H$1*(1+C2); kéo B2:D2 xuống hàng 1001. - Copy B2:D1001, paste values only sang sheet mới và đặt mã đợt. Đây là bước đóng băng đợt mô phỏng.
- Tính
=AVERAGE(D2:D1001),=MEDIAN(D2:D1001),=COUNTIF(D2:D1001,"<100")/1000,=PERCENTILE(D2:D1001,0.05)và0.95. - Tính lại trên 100, 500 và 1.000 hàng. Không đòi kết quả tiến gần theo đường thẳng; chỉ kiểm mức dao động đã đủ nhỏ chưa.
Một kiểm tra độc lập trên các phần đầu của MC39-A cho thấy:
| Số lượt | Trung bình | Dưới 100 | P5 | P95 |
|---|---|---|---|---|
| 100 | 100,4464 |
41,0% |
96,9241 |
103,8872 |
| 500 | 100,4096 |
42,2% |
96,8852 |
103,7413 |
| 1.000 | 100,4721 |
40,2% |
97,0254 |
103,7985 |
Mẫu đối chiếu đã điền
| Trường | Nội dung |
|---|---|
| Run | MC39-A; seed 39; n=1.000 |
| Mô hình | V₁=100×(1+R); một kỳ |
| Đầu vào | R~Normal(0,5%; 2%); hư cấu |
| Phụ thuộc | Chưa mô hình hóa vì chỉ có một biến |
| Đầu ra | Trung bình 100,4721; trung vị 100,4514; dưới 100 40,2% |
| Đuôi | P5 97,0254; P95 103,7985 |
| Độ nhạy | Cùng lượt, sigma 4%: dưới 100 45,9%; P5 93,5508; P95 107,0969 |
| Giới hạn | Chuẩn chưa kiểm; không phí, nhiều kỳ hoặc đổi chế độ |
| Quyết định | Demo; chưa được triển khai |
| Điểm dừng | Đầu vào chưa kiểm, bỏ phụ thuộc hoặc đầu ra còn dao động quá mức |
Hình 4 — Thiếu một ô kiểm chứng là lý do dừng, không phải lý do tăng số lượt.
7. Tổng kết và bài tiếp theo
Năm ý chính
- Monte Carlo truyền giả định qua mô hình; nó không xác nhận tương lai.
- Mỗi đợt phải khóa mô hình, đầu vào, phụ thuộc, số lượt và chỉ số.
- Trung vị, phân vị và tỷ lệ dưới mốc mô tả phân phối mô phỏng.
- Thêm lượt giảm nhiễu lấy mẫu nhưng không sửa mô hình sai.
- Kiểm tra độ nhạy bằng cách đổi một giả định và giữ các phần khác cố định.
Câu hỏi tự kiểm tra
- Vì sao 1.000 lượt không chứng minh phân phối đầu vào đúng?
- P5 khác “lỗ tối đa” như thế nào?
- Vì sao kiểm tra độ lệch chuẩn
2%và4%nên dùng cùng lượt bốc? - Khi nào phải dừng thay vì tăng số lượt?
Gợi ý đáp án
Xem gợi ý câu 1
Các lượt chỉ lấy mẫu từ phân phối đã khai báo; chúng không kiểm chứng phân phối ấy ngoài đời. → xem mục 1.
Xem gợi ý câu 2
P5 là phân vị của đợt, vẫn còn khoảng 5% đầu ra thấp hơn; nó không phải cực trị chắc chắn. → xem mục 4.
Xem gợi ý câu 3
Giữ cùng lượt bốc cô lập tác động của độ lệch chuẩn; đổi cả hai sẽ trộn thêm nhiễu lấy mẫu. → xem mục 5.
Xem gợi ý câu 4
Dừng khi đầu vào chưa kiểm, phụ thuộc bị bỏ hoặc đầu ra chưa ổn định theo tiêu chí đã khóa. → xem mục 6.
Thuật ngữ cần nhớ
| Thuật ngữ | Giải thích ngắn |
|---|---|
| Monte Carlo | Lấy mẫu lặp từ đầu vào rồi chạy cùng mô hình |
| Lượt chạy | Một lần bốc đầu vào và tính đầu ra |
| Kịch bản | Bộ giá trị đầu vào của một lượt |
| Phân phối đầu vào | Quy tắc gán mức có thể và độ thường gặp |
| Tham số | Con số điều khiển vị trí hoặc độ rộng phân phối |
| Phụ thuộc | Hai đầu vào không thay đổi riêng rẽ |
| Mã khởi tạo (seed) | Mã bắt đầu chuỗi giả ngẫu nhiên khi công cụ hỗ trợ |
| Trung vị | Mốc chia đôi các đầu ra đã sắp |
| Phân vị | Ngưỡng phần trăm của phân phối mô phỏng |
| Kiểm tra độ nhạy | Đổi một giả định có kiểm soát rồi xem đầu ra |
Nguồn tham khảo
- NIST — Monte Carlo Tool
- NIST/SEMATECH — Glossary
- BIPM — JCGM 101:2008
- FPP3 — Prediction Intervals
- FPP3 — Bootstrapping and Bagging
- Google Sheets — Function List
- NumPy — Random Sampling
Tiếp tục với Regression Framework #40 để gom Correlation #31 đến Monte Carlo #39 thành một quy trình phân tích có điểm dừng. Khi cần, quay lại Forecasting #38 hoặc toàn bộ Quantitative Finance Zero to Hero.
Nội dung này phục vụ mục đích giáo dục, không phải lời khuyên đầu tư hoặc tín hiệu giao dịch. Mọi thị trường đều có rủi ro mất vốn.
Bài tiếp theo