Tables for Lifelines

This notebook demonstrates fitting a Cox proportional hazards model using lifelines and viewing the summary with MakeTables.

References: lifelines documentation — Survival Regression.

# 1. Import Dependencies and Dataset
import pandas as pd
import maketables as mt
from lifelines.datasets import load_rossi
from lifelines import CoxPHFitter

rossi = load_rossi()

# 2. Fit Stratified Cox Proportional Hazards Model
cph = CoxPHFitter()
cph.fit(rossi, duration_col='week', event_col='arrest')

# Define variable labels based on Rossi et al. (1980)
labels = {
    'fin': 'Financial Aid',
    'age': 'Age at Release',
    'race': 'Black',
    'wexp': 'Prior Work Experience',
    'mar': 'Married',
    'paro': 'On Parole',
    'prio': 'Prior Convictions',
    'arrest': 'Arrest Event'
}
 
# Create table with Hazard Ratios
mt.ETable(cph, labels=labels, coef_fmt="hr* \n (se)")
Arrest Event
(1)
coef
Financial Aid 0.684**
(0.191)
Age at Release 0.944***
(0.022)
Black 1.369
(0.308)
Prior Work Experience 0.861
(0.212)
Married 0.648
(0.382)
On Parole 0.919
(0.196)
Prior Convictions 1.096***
(0.029)
stats
Observations 432
Events 114
Concordance 0.64
Log-likelihood -658.748
Significance levels: * p < 0.1, ** p < 0.05, *** p < 0.01. Format of coefficient cell: Hazard Ratio (Std. Error)

To check the available coefficient information and model statistics extracted you can use the inspect_model function from MakeTables.

# Quick inspection - see available columns and stats (concise)
mt.inspect_model(cph)

============================================================
Model: CoxPHFitter | Extractor: LifelinesExtractor
============================================================

COEFFICIENT TABLE COLUMNS:
  Use these in coef_fmt parameter (e.g., coef_fmt='b:.3f* \n (se:.3f)')
  Available: b, se, z, p, ci95l, ci95u, hr, hr_ci95l, hr_ci95u, cmp to, -log2(p)

AVAILABLE STATISTICS:
  Use these in model_stats parameter (e.g., model_stats=['N', 'r2', 'aic'])
  Available: N, events, ll, aic, concordance, llr, llr_df, llr_p, llr_log2p
  Defaults: N, events, concordance, ll

OTHER METADATA:
  depvar=arrest
============================================================