Chọn phân phối xác suất

Mô phỏng Monte Carlo với Python

Izzy Weber

Curriculum Manager, DataCamp

Ước lượng hợp lý cực đại (MLE)

  • Dùng để chọn phân phối bằng cách đo độ khớp
    • Phân phối có khả năng xảy ra cao nhất với dữ liệu được xem là tối ưu
  • SciPy .nnlf() dùng để tính hàm khả năng âm
  • MLE từ .nnlf() càng thấp, độ khớp càng tốt
Mô phỏng Monte Carlo với Python

Chọn phân phối cho biến age

sns.histplot(dia["age"])

Biểu đồ tần suất của biến age trong bộ dữ liệu tiểu đường

Mô phỏng Monte Carlo với Python

Phân phối ứng viên

distributions = [st.laplace, st.norm, st.expon]

Hàm mật độ (PDF) của phân phối Laplace

Mô phỏng Monte Carlo với Python

Chọn giữa các phân phối ứng viên

mles = []


for distribution in distributions: pars = distribution.fit(dia["age"])
mle = distribution.nnlf(pars, dia["age"])
mles.append(mle)
print(mles)
[1797.8467779878652, 1764.0693689033028, 1938.171599681118]
Mô phỏng Monte Carlo với Python

Chọn giữa các phân phối ứng viên

for var in ["age", "bmi", "bp", "tc", "ldl", "hdl", "tch", "ltg", "glu"]:

distributions = [st.laplace, st.norm, st.expon] mles = []
for distribution in distributions: pars = distribution.fit(dia[var]) mle = distribution.nnlf(pars, dia[var]) mles.append(mle)
best_fit = sorted(zip(distributions, mles), key=lambda d: d[1])[0] print(f"Best fit reached using {best_fit[0].name}, \ MLE value: {best_fit[1]}, for variable {var}")
Mô phỏng Monte Carlo với Python

Kết quả đánh giá

Khớp tốt nhất: dùng norm, giá trị MLE: 1764.0693689033028, biến age
Khớp tốt nhất: dùng norm, giá trị MLE: 1283.356127017369, biến bmi
Khớp tốt nhất: dùng norm, giá trị MLE: 1787.7746251622739, biến bp
Khớp tốt nhất: dùng norm, giá trị MLE: 2193.1564373753627, biến to
Khớp tốt nhất: dùng norm, giá trị MLE: 2136.0440476305284, biến ldl
Khớp tốt nhất: dùng norm, giá trị MLE: 1758.1350738323013, biến hdl
Khớp tốt nhất: dùng norm, giá trị MLE: 739.3762494786798, biến tch
Khớp tốt nhất: dùng norm, giá trị MLE: 339.6620870566908, biến ltg
Khớp tốt nhất: dùng norm, giá trị MLE: 1706.0467588930867, biến glu
Mô phỏng Monte Carlo với Python

Ayo berlatih!

Mô phỏng Monte Carlo với Python

Preparing Video For Download...