Áp dụng phân tích sống sót cho các nhóm

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

Shae Wang

Senior Data Scientist

Bài toán thế chấp

Tên DataFrame: mortgage_df

id property type duration paid_off
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Property type: loại bất động sản được thế chấp (house hoặc apartment)

Thời gian trả hết của nhà riêng và căn hộ có khác nhau không?
Phân tích sống sót bằng Python

So sánh phân phối sống sót giữa nhóm

Ta thường muốn đánh giá liệu có khác biệt về sống sót (hoặc xác suất sự kiện/sống sót) giữa các nhóm đối tượng.

  • Thuộc tính chiều của đối tượng
    • ví dụ: loại thế chấp khác nhau, hãng lốp khác nhau
  • Nhóm thí nghiệm khác nhau
    • ví dụ: nhóm điều trị so với đối chứng
  • Giá trị khác nhau cho cùng một thuộc tính chiều
    • ví dụ: hộ thu nhập cao so với thấp
Phân tích sống sót bằng Python

Các kiểu so sánh theo nhóm trong phân tích sống sót

1. Các ước lượng điểm hay thống kê sống sót có khác nhau không?
  • So sánh xác suất sống sót của hai nhóm tại một thời điểm cụ thể
  • So sánh tổng tỷ lệ sống sót giữa hai nhóm
Phân tích sống sót bằng Python

Các kiểu so sánh theo nhóm trong phân tích sống sót

2. Phân phối nền có khác nhau không?
  • Cần kiểm định giả thuyết chính thức
Phân tích sống sót bằng Python

Các kiểu so sánh theo nhóm trong phân tích sống sót

3. Một thuộc tính ảnh hưởng bao nhiêu đến sống sót?
  • Cần khung mô hình hồi quy
Phân tích sống sót bằng Python

Trực quan hóa khác biệt giữa nhóm

Ước lượng hàm sống sót Kaplan–Meier cho từng nhóm và vẽ các đường cong cạnh nhau.

Lợi ích:

  • Dễ dùng và dễ diễn giải.
  • Phi tham số nên linh hoạt cho nhiều phân phối sống sót.
  • Hữu ích để minh họa khác biệt giữa các hàm sống sót.
Phân tích sống sót bằng Python

Xác định các nhóm

Tên DataFrame: mortgage_df

id property type duration paid_off
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Tạo mặt nạ Boolean cho từng nhóm.

house = (mortgage_df["property_type"]=="house")
apt = (mortgage_df["property_type"]=="apartment")

Nếu chỉ có 2 nhóm, chỉ cần 1 mặt nạ. Nhóm còn lại có thể tham chiếu bằng phủ định.

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

Fit và vẽ các đường cong sống sót

Tạo một hình và khởi tạo lớp KaplanMeierFitter.

ax = plt.subplot(111)
mortgage_kmf = KaplanMeierFitter()

Fit mortgage_kmf cho nhóm nhà riêng và vẽ lên hình ax.

mortgage_kmf.fit(duration=mortgage_df[house]["duration"], 
                 event_observed=mortgage_df[house]["paid_off"],
                 label="Houses")
mortgage_kmf.plot_survival_function(ax=ax)
Phân tích sống sót bằng Python

Fit và vẽ các đường cong sống sót

Fit mortgage_kmf cho nhóm căn hộ và vẽ lên hình ax.

mortgage_kmf.fit(duration=mortgage_df[apt]["duration"], 
                 event_observed=mortgage_df[apt]["paid_off"],
                 label="Apartments")
mortgage_kmf.plot_survival_function(ax=ax)
Phân tích sống sót bằng Python

So sánh cạnh nhau

plt.show()

Đường cong sống sót Kaplan–Meier: căn hộ vs. nhà riêng.

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

Diễn giải đường cong sống sót theo nhóm

Đường cong sống sót Kaplan–Meier: căn hộ vs. nhà riêng

  • Trung bình, khoản thế chấp căn hộ được trả nhanh hơn khoản thế chấp nhà riêng.
  • Ở cùng một thời lượng, tỷ lệ trả hết của căn hộ cao hơn nhà riêng.

Lưu ý: nếu khoảng tin cậy chồng lấn tại một số điểm, khả năng có khác biệt thực giữa các đường cong sẽ thấp hơn.

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

Ayo berlatih!

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

Preparing Video For Download...