Analisi di sopravvivenza in Python
Shae Wang
Senior Data Scientist
Una funzione matematica che descrive la probabilità dei diversi esiti.

Una funzione matematica che descrive la probabilità dei diversi esiti.

Una distribuzione continua che modella molto bene i tempi all'evento (inizialmente usata per la distribuzione delle dimensioni delle particelle).
$$f(x;\lambda,k)=\frac{k}{\lambda}\bigg(\frac{x}{\lambda}\bigg)^{k-1}e^{-(x/\lambda)^k}$$ $$x\geq0,k>0,\lambda>0$$
Determina la forma

Determina la scala

Un'azienda gestisce una flotta di macchine soggette a guasti...

Un'azienda gestisce una flotta di macchine soggette a guasti...

$$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$ è lo stesso di 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() per adattare il modello ai datiwb.fit(durations, event_observed)
.survival_function_, .lambda_, .rho_, .summary, .predict()Nome 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
Analisi di sopravvivenza in Python