我对使用R-project并不陌生,由于交叉验证包的插入符比较容易,所以我开始使用编程语言。但是,我一直坚持将预测的概率值转换为原始的实际值。
更具体地说,我们有45位单侧血管患者和25位健康参与者的踏板功率数据,我们希望预测人们出现血管问题的临界点。我已经使用10次重复的10倍交叉验证ROC来获得一般线性模型的最佳(年轻方法)截止点。
该数据集称为Dia_data,例如,我使用的是可变数字DIFF_POWER_MEAN_95_REL
library(caret)
library(pROC)
#train model
data_ctrl <- trainControl(method="repeatedcv", repeats= 10, savePredictions=TRUE, classProbs=TRUE, number=10, p=0.8, summaryFunction = twoClassSummary, returnResamp = "all")`
model <- train(patient ~ DIFF_POWER_MEAN_95_REL, data=Dia_data, method="glm", trControl=data_ctrl, metric = "ROC", na.action = na.pass)`
#generate ROC-curve
ROC <- plot.roc(model$pred$obs, model$pred$N)
#optimal cut-off point using youden method
coords(ROC, "b", ret="t", best.method="youden")
ROC曲线看起来不错,但是临界点是基于重采样的预测概率。如何获取原始踏板功率值中的截止点值?
那么,人们在出现血管问题时的踏板功率差异?