Phương pháp Monte-Carlo: phân phối chuẩn
Phương pháp Monte Carlo là một kỹ thuật thống kê được sử dụng để mô phỏng các hiện tượng ngẫu nhiên bằng cách sử dụng các số ngẫu nhiên. Phương pháp này có thể được áp dụng cho nhiều loại vấn đề khác nhau, từ tính toán giá trị xấp xỉ của các tích phân phức tạp đến mô phỏng hành vi của các hệ thống với nhiều biến số không biết.
Một trong những ứng dụng quan trọng nhất của phương pháp Monte Carlo là trong việc tạo ra các phân phối ngẫu nhiên, bao gồm cả phân phối chuẩn (normal distribution). Phân phối chuẩn là một trong những phân phối quan trọng nhất trong thống kê và xác suất, được đặc trưng bởi hai tham số chính là trung bình (mean) và độ lệch chuẩn (standard deviation).
Dưới đây là cách thực hiện phương pháp Monte Carlo để tạo ra một phân phối chuẩn:
-
Tạo ra các số ngẫu nhiên: Bước đầu tiên là tạo ra một chuỗi các số ngẫu nhiên theo phân phối đều (uniform distribution) trong khoảng từ 0 đến 1. Các số này sẽ được sử dụng để biến đổi thành các số tuân theo phân phối chuẩn.
-
Ánh xạ số ngẫu nhiên sang phân phối chuẩn: Sử dụng một hàm ánh xạ, chẳng hạn như hàm nghịch đảo của hàm phân phối (cumulative distribution function - CDF) của phân phối chuẩn, chúng ta có thể chuyển đổi các số ngẫu nhiên từ phân phối đều sang phân phối chuẩn.
-
Tính toán trung bình và độ lệch chuẩn: Sau khi có được các số ngẫu nhiên tuân theo phân phối chuẩn, chúng ta có thể tính toán trung bình và độ lệch chuẩn của chuỗi số này để xác định phân phối chuẩn cuối cùng.
Dưới đây là một đoạn mã Python minh họa việc sử dụng phương pháp Monte Carlo để tạo ra một phân phối chuẩn:
import numpy as np
import matplotlib.pyplot as plt# Số lượng điểm dữ liệu
num_samples = 100000# Tạo ra các số ngẫu nhiên theo phân phối đều
random_numbers = np.random.rand(num_samples)# Ánh xạ sang phân phối chuẩn bằng hàm nghịch đảo của hàm phân phối tích lũy của phân phối chuẩn
standard_normal_samples = np.sqrt(2) * np.erfinv(2 * random_numbers - 1)# Vẽ biểu đồ phân phối chuẩn
plt.hist(standard_normal_samples, bins=50, density=True, alpha=0.6, color='g')
plt.title('Phân phối chuẩn được tạo ra bằng phương pháp Monte Carlo')
plt.xlabel('Giá trị')
plt.ylabel('Tần suất')
plt.show()
Trong mã này, chúng ta sử dụng thư viện NumPy để tạo ra các số ngẫu nhiên và tính toán hàm nghịch đảo của hàm phân phối tích lũy của phân phối chuẩn. Cuối cùng, chúng ta vẽ biểu đồ histogram để minh họa phân phối chuẩn thu được.