在上一篇同名公众号文章中,calibrarion曲线部分漏了一句代码,特此勘误,请以下面的代码为准
用训练集建立模型,并在其他集上做calibration曲线 R代码示例:
# 加载必要的库
library(riskRegression)
# 使用glm()函数在训练集上建立logistic回归模型
formula <- as.formula(glue("response ~ predictor1 + predictor2 + ..."))
logistic_model <- glm(formula, family = binomial(), data = train_data)
# 使用 riskRegression 包的 Score 函数来获取calibration数据
# 在训练集上
cal_train <- riskRegression::Score(
object = list(fit = logistic_model),
formula = as.formula("response ~ 1"),
plots = "calibration",
data = train_data
)
# 在内部验证集上
cal_validation <- riskRegression::Score(
object = list(fit = logistic_model),
formula = as.formula("response ~ 1"),
plots = "calibration",
data = validation_data
)
# 在外部验证集上
cal_external <- riskRegression::Score(
object = list(fit = logistic_model),
formula = as.formula("response ~ 1"),
plots = "calibration",
data = external_data
)
# 绘制calibration曲线
# 在训练集上
riskRegression::plotCalibration(x = cal_train,
xlab = "Predicted Risk",
ylab = "Observed Risk",
col = "black",
brier.in.legend = TRUE,
auc.in.legend = TRUE)
# 在内部验证集上
riskRegression::plotCalibration(x = cal_validation,
xlab = "Predicted Risk",
ylab = "Observed Risk",
col = "black",
brier.in.legend = TRUE,
auc.in.legend = TRUE)
# 在外部验证集上
riskRegression::plotCalibration(x = cal_external,
xlab = "Predicted Risk",
ylab = "Observed Risk",
col = "black",
brier.in.legend = TRUE,
auc.in.legend = TRUE)
如果不会编程的朋友,可以登录 www.mstata.com ,点击网站左上角的MSTATA医学统计机器人,选以研究类型分类-预测研究回归 - Logistic - nomogram 预测研究(一键生成 SCI 论文)。上面已经把整个流程自动打包,只需要鼠标点一点就能完成所有过程,直到生成一篇完整的 3000 字左右的 SCI 论文。