Další rozdělení a výběr modelu

Survival Analysis in Python

Shae Wang

Senior Data Scientist

Který model nejlépe odpovídá datům?

4 křivky přežití pro stejná data pomocí různých modelů

Survival Analysis in Python

Výběr parametrických modelů

  • Neparametrické modelování (tj. model Kaplan-Meier)
    • Přesně popisuje data, protože je bez předpokladu rozdělení
    • Není hladké/spojité/diferencovatelné
  • Parametrické modelování (tj. Weibullův model)
    • Parametrická statistika obvykle poskytuje více informací
    • Při použití nesprávného modelu vede k výrazně zkresleným závěrům
Survival Analysis in Python

Běžné parametrické modely přežití

  • Weibullův model
    from lifelines import WeibullFitter
    
  • Exponenciální model
    from lifelines import ExponentialFitter
    
  • Log-normální model
    from lifelines import LogNormalFitter
    
  • Log-logistický model
    from lifelines import LogLogisticFitter
    
  • Gamma model
    from lifelines import GeneralizedGammaFitter
    
Survival Analysis in Python

Akaikeho informační kritérium (AIC)

  • AIC: Odhadce chyby predikce a relativní kvality statistických modelů pro daná data.
  • Odhaduje relativní množství informací ztracených modelem a penalizuje velký počet odhadovaných parametrů.
    • Čím méně informací model ztrácí, tím je kvalitnější.
    • Čím méně parametrů (méně složitý) model má, tím je kvalitnější.
  • Ze sady kandidátních modelů pro daná data je preferován ten s minimální hodnotou AIC.
Survival Analysis in Python

Výběr modelu pomocí AIC

Krok 1) Fit parametrických modelů v lifelines

Krok 2) Tisk a porovnání vlastnosti AIC_ každého modelu

Krok 3) Preferuje se nejnižší hodnota AIC

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
Survival Analysis in Python

find_best_parametric_model()

  • find_best_parametric_model(): vestavěná funkce lifelines pro automatické porovnání AIC parametrických modelů.
  • Prochází všechny parametrické modely dostupné v lifelines.

Jak ji použít?

  • T: trvání, E: cenzorování
    best_model, best_aic_ = find_best_parametric_model(event_times=T,
                                                       event_observed=E,
                                                       scoring_method="AIC")
    print(best_model)
    
<lifelines.WeibullFitter:"Weibull_estimate", 
fitted with 686 total observations, 387 right-censored observations>
Survival Analysis in Python

QQ graf

  • QQ graf: Porovnává dvě pravděpodobnostní rozdělení vynesením jejich kvantilů proti sobě.
  • Pokud jsou obě porovnávaná rozdělení podobná, body v QQ grafu leží přibližně na přímce y = x.

příklad QQ grafu

Survival Analysis in Python

Výběr modelu pomocí QQ grafů

Krok 1) Fit parametrických modelů v lifelines.

Krok 2) Vykreslení QQ grafu každého modelu.

Krok 3) Preferuje se QQ graf nejblíže y = x.

from lifelines.plotting import qq_plot

for model in [WeibullFitter(), LogNormalFitter(), LogLogisticFitter(), ExponentialFitter()]: model.fit(T, E) qq_plot(model)
plt.show()
Survival Analysis in Python

Výběr modelu pomocí QQ grafů

QQ graf pro porovnání

Survival Analysis in Python

Pojďme si procvičit!

Survival Analysis in Python

Preparing Video For Download...