生存分析(ROC)代码
时间: 2023-11-13 13:41:33 浏览: 30
以下是一个使用Python的生存分析(ROC)代码示例:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from lifelines import KaplanMeierFitter
from lifelines.utils import median_survival_times
from sklearn.metrics import roc_curve, auc
# 创建一个模拟数据集
data = pd.DataFrame({
'time': [10, 15, 20, 30, 50, 60, 70, 80],
'status': [1, 1, 1, 0, 0, 0, 0, 0],
'group': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'B']
})
# 使用Kaplan-Meier估计器拟合并绘制生存曲线
kmf = KaplanMeierFitter()
for group in data['group'].unique():
mask = data['group'] == group
kmf.fit(data.loc[mask, 'time'], data.loc[mask, 'status'], label=group)
kmf.plot()
# 计算中位生存时间
median_times = median_survival_times(kmf.confidence_interval_)
print(f"Median survival times: {median_times}")
# 绘制ROC曲线
fpr, tpr, thresholds = roc_curve(data['status'], -data['time'], pos_label=1)
roc_auc = auc(fpr, tpr)
plt.plot(fpr, tpr, lw=1, alpha=0.8, label=f"AUC={roc_auc:.2f}")
plt.plot([0, 1], [0, 1], linestyle='--', lw=1, color='gray', alpha=0.8)
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic (ROC) Curve')
plt.legend()
plt.show()
```
这个示例使用了Python中的lifelines库来拟合Kaplan-Meier生存曲线,并使用sklearn库计算ROC曲线和AUC。此示例还绘制了一个ROC曲线,该曲线用于评估模型的预测能力,其中真阳性率(TPR)在y轴上,假阳性率(FPR)在x轴上。