Các phân phối khác và chọn mô hình

Phân tích sống sót bằng Python

Shae Wang

Senior Data Scientist

Mô hình nào khớp dữ liệu tốt nhất?

4 đường sống sót cho cùng dữ liệu với mô hình khác nhau

Phân tích sống sót bằng Python

Chọn mô hình tham số

  • Mô hình phi tham số (ví dụ: Kaplan–Meier)
    • Mô tả dữ liệu chính xác vì không giả định phân phối
    • Không trơn/liên tục/khả vi
  • Mô hình tham số (ví dụ: Weibull)
    • Thống kê tham số thường cho nhiều thông tin hơn
    • Chọn sai mô hình sẽ gây sai lệch kết luận đáng kể
Phân tích sống sót bằng Python

Các mô hình sống sót tham số thường dùng

  • Mô hình Weibull
    from lifelines import WeibullFitter
    
  • Mô hình mũ (Exponential)
    from lifelines import ExponentialFitter
    
  • Mô hình log-normal
    from lifelines import LogNormalFitter
    
  • Mô hình log-logistic
    from lifelines import LogLogisticFitter
    
  • Mô hình gamma
    from lifelines import GeneralizedGammaFitter
    
Phân tích sống sót bằng Python

Tiêu chí thông tin Akaike (AIC)

  • AIC: Thước đo lỗi dự báo và chất lượng tương đối của mô hình thống kê cho một tập dữ liệu.
  • Ước lượng lượng thông tin mất đi của mô hình và phạt số tham số ước lượng lớn.
    • Mất ít thông tin hơn → mô hình chất lượng cao hơn.
    • Ít tham số hơn (ít phức tạp) → chất lượng cao hơn.
  • Trong tập các mô hình ứng viên, mô hình có giá trị AIC nhỏ nhất được ưu tiên.
Phân tích sống sót bằng Python

Dùng AIC để chọn mô hình

Bước 1) Khớp mô hình tham số trong lifelines

Bước 2) In và so sánh thuộc tính AIC_ của từng mô hình

Bước 3) Ưu tiên giá trị AIC nhỏ nhất

from lifelines import WeibullFitter, 
                      ExponentialFitter, 
                      LogNormalFitter
wb = WeibullFitter().fit(D, E)
exp = ExponentialFitter().fit(D, E)
log = LogNormalFitter().fit(D, E)
print(wb.AIC_, exp.AIC_, log.AIC_)
215.9091   216.1183   202.3498
Phân tích sống sót bằng Python

find_best_parametric_model()

  • find_best_parametric_model(): hàm tích hợp của lifelines để tự động so sánh AIC giữa các mô hình tham số.
  • Lặp qua từng mô hình tham số có trong lifelines.

Cách dùng

  • T: thời lượng, E: kiểm duyệt
    best_model, best_aic_ = find_best_parametric_model(event_times=T,
                                                       event_observed=E,
                                                       scoring_method="AIC")
    print(best_model)
    
<lifelines.WeibullFitter:"Weibull_estimate", 
được khớp với 686 quan sát tổng, 387 quan sát bị kiểm duyệt phải>
Phân tích sống sót bằng Python

Biểu đồ QQ

  • Biểu đồ QQ: So sánh hai phân phối bằng cách vẽ các bách phân vị của chúng đối nhau.
  • Nếu hai phân phối tương tự, các điểm sẽ gần đường y = x.

ví dụ biểu đồ qq

Phân tích sống sót bằng Python

Dùng biểu đồ QQ để chọn mô hình

Bước 1) Khớp các mô hình tham số trong lifelines.

Bước 2) Vẽ biểu đồ QQ cho từng mô hình.

Bước 3) Ưu tiên biểu đồ QQ gần y = x nhất.

from lifelines.plotting import qq_plot

for model in [WeibullFitter(), LogNormalFitter(), LogLogisticFitter(), ExponentialFitter()]: model.fit(T, E) qq_plot(model)
plt.show()
Phân tích sống sót bằng Python

Dùng biểu đồ QQ để chọn mô hình

biểu đồ qq để so sánh

Phân tích sống sót bằng Python

Hãy luyện tập!

Phân tích sống sót bằng Python

Preparing Video For Download...