Phân tích sống sót bằng Python
Shae Wang
Senior Data Scientist
Hàm mô tả xác suất của các kết quả sự kiện khác nhau.

Hàm mô tả xác suất của các kết quả sự kiện khác nhau.

Phân phối xác suất liên tục, rất phù hợp mô hình hóa thời gian đến sự kiện (ban đầu dùng cho phân bố kích thước hạt).
$$f(x;\lambda,k)=\frac{k}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^{k-1}e^{-(x/\lambda)^k}$$ $$x\geq0,k>0,\lambda>0$$
Quyết định dạng

Quyết định thang

Một công ty vận hành đội máy dễ hỏng...

Một công ty vận hành đội máy dễ hỏng...

$$f(x;\lambda,k)=\frac{k}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^{k-1}e^{-(x/\lambda)^k} \quad\rightarrow\quad\qquad\qquad S(t)=e^{-(t/\lambda)^\rho}$$

$\rho$ trùng với k
$$f(x;\lambda,k)=\frac{k}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^{k-1}e^{-(x/\lambda)^k} \quad\rightarrow\quad f(x;\lambda,k=3)=\frac{3}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^2e^{-(x/\lambda)^3}$$



WeibullFitterfrom lifelines import WeibullFitter
WeibullFitterwb = WeibullFitter()
.fit() để khớp mô hình với dữ liệuwb.fit(durations, event_observed)
.survival_function_, .lambda_, .rho_, .summary, .predict()Tên DataFrame: mortgage_df
| id | duration | paid_off |
|---|---|---|
| 1 | 25 | 0 |
| 2 | 17 | 1 |
| 3 | 5 | 0 |
| ... | ... | ... |
| 1000 | 30 | 1 |
from lifelines import WeibullFitter
wb = WeibullFitter()
wb.fit(durations=mortgage_df["duration"],
event_observed=mortgage_df["paid_off"])
wb.survival_function_.plot()
plt.show()

print(wb.lambda_, wb.rho_)
6.11 0.94
print(wb.predict(20))
0.05
Phân tích sống sót bằng Python