У меня есть набор данных из 100 образцов, каждый из которых имеет 195 мутаций с соответствующим им известным клиническим значением («RealClass») и прогнозируемым значением согласно некоторому инструменту прогнозирования («PredictionValues»)
Для демонстрации, это случайный набор данных, который имеет ту же структуру, что и мой набор данных:
predictions_100_samples<-as.data.frame(matrix(nrow=19500,ncol=3))
colnames(predictions_100_samples)<-c("Sample","PredictionValues","RealClass")
predictions_100_samples$Sample<-rep(c(1:100), each = 195)
predictions_100_samples$PredictionValues<-sample(seq(0,1,length.out=19500))
predictions_100_samples$RealClass<-rep(c("pathogenic","benign"),each=10)
colours_for_ROC_curves<-rainbow(n=100)
Я построил все эти 100 выборок как кривые ROC через пакет PROC:
library("pROC")
roc_both <- plot(roc(predictor=predictions_100_samples[1:195,2],response = predictions_100_samples[1:195,3]), col = colours_for_ROC_curves[1],main="100 samples ROC curves",legacy.axes=TRUE,lwd=1)
i=2
for(i in 1:100){
set.seed(500)
roc_both <- plot(roc(predictor=predictions_100_samples[(((i-1)*195)+1):(i*195),2],response = predictions_100_samples[(((i-1)*195)+1):(i*195),3]), col = colours_for_ROC_curves[i], add = TRUE,lwd=1)
i=i+1
}
И этокак выглядит окончательный график:
Теперь я хочу добавить среднюю кривую ROC всех 100 построенных кривых ROC к одному графику.Я попытался использовать чувствительность и специфичность, рассчитанные для каждого порога с помощью функции "roc", в цикле, который я написал (это может быть достигнуто с помощью roc_both$sensitivities
, roc_both$specificities
, roc_both$thresholds
)
Но главная проблемабыло то, что выбранные пороги были случайными и не равными вдоль 100 кривых ROC, которые я нанес, поэтому я не мог рассчитать среднюю кривую ROC вручную.
Существует ли другой пакет, который может позволить мне получить среднее значение ROCКривые нескольких кривых ROC?Или есть пакет, который позволяет устанавливать пороги для расчета чувствительности и специфичности вручную, чтобы впоследствии я мог рассчитать среднюю ROC-кривую?Возможно, у вас есть другое решение для моей проблемы?
Спасибо!