k倍交叉验证与开发集中的AUC /灵敏度/特异性值有何不同?

为了可重复性,我有以下代码,使用R中的TitanicSurvival数据集(重复10次交叉验证3次)。

此外,我对论坛来说是新手,对R来说还是新手,因此,如果我违反了任何论坛指南,我会提前道歉。如果有记录,我将纠正所有错误。

library(caret)
library(pROC)
df <- TitanicSurvival
df2 <- na.omit(df)

#Multiple regression model on df2:

titanic <- glm(survived~ sex + age,family=binomial,data = df2)

roc(df2$survived,titanic$fitted.values) # AUC = 0.7735
pred <- ifelse(predict(titanic,df2,type="response")>0.5,1,0)
actual <- titanic$y
conf_mat <- table(pred,actual)
sensitivity(conf_mat) # 0.8449111
specificity(conf_mat) # 0.6838407

#Now,using 10-fold cross validation repeated 3 times,on the same df2 data set:

ctrl <- trainControl(method="repeatedcv",repeats = 3,number = 10,classprobs = TRUE,summaryFunction = twoClassSummary,savePredictions = T)

model <- train(survived ~ sex + age,data = df2,trControl=ctrl,method="glm",preProc = c("center","scale"),metric="ROC")

# Model ROC(AUC): 0.7738766,Sens: 0.8449321,Spec: 0.6840347

现在,我的问题是:

  1. 如何计算交叉验证模型中的AUC / Sens / Spec值?考虑到10倍CV创建了多个训练和测试集,我试图理解此输出。
  2. 交叉验证模型中的AUC / Sens / Spec值与“ titanic”模型中显示的值有何不同?
  3. 在医学文献中,一些研究使用k倍交叉验证执行了多元回归,而没有外部验证集。在此特定研究中,当他们撰写“模型准确区分HCC的存在时,在派生和验证队列中,c统计量分别为0.84(95%CI 0.81-0.86)和0.83(95%CI 0.80-0.85)(图1)” “, 这是什么意思?由于k-fold CV创建了多个训练集和测试集,因此如何得出这些各自的值? source

很长的问题,很抱歉,但是我一直在进行大量搜索,但仍然不清楚。

谢谢!

onion_chan 回答:k倍交叉验证与开发集中的AUC /灵敏度/特异性值有何不同?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3087551.html

大家都在问