2015-02-22 3 views
3

Мне сложно перевести команду примера для ROC в мой набор данных. Это для Proc пакетаR кодирование для ROC

Это пример использования данных (Asah)

roc(aSAH$outcome, aSAH$s100b) 
roc(outcome ~ s100b, aSAH) 

Итак ... Asah следует заменить на имя моего набора данных или подмножества данных. Верный?

Результат должен быть заменен моим именем переменной результата. Верный?

s100b следует заменить на мое имя переменной предиктора. Верный? Что делать, если у меня нет одной переменной-предиктора, но вместо этого я пытаюсь определить ROC дерева? Я попытался заменить s100b на имя моего дерева, но это тоже не сработало.

+0

Рух не может оценить модель, только числовые предсказания ... используйте 'predict' функцию! – Calimo

ответ

1

В команде roc в R первый аргумент - это реальный наблюдаемый ответ, а второй - оценка вашей модели. Чтобы нарисовать ROC-кривую, проще всего применить кривую roc и сохранить результаты в некоторой другой переменной - назовем ее анализ. Затем необходимо извлечь чувствительность и 1-специфичность из переменной анализ, потому что это то, что вам нужно для кривой ROC. Это может быть сделано в участке команды:

plot(1-analysis$specificities,analysis$sensitivities,type="l") 

Пожалуйста, посмотрите на картину и как результат может выглядеть в R. Ниже на картинке, вы можете найти R-код для этой кривой и применить это к вашей проблеме. Обратите внимание, что вначале я моделировал данные.

enter image description here

rm(list = ls()) # clear work space 
##Simulate Data 
set.seed(123456) 
n <- 10000 
q <- 0.8 

#Simulate predictions 
Real <- c(sample(c(0,1), n/2, replace = TRUE, prob = c(1-q,q)), 
    sample(c(0,1), n/2, replace = TRUE, prob = c(0.7,0.3))) 

#Simulate Response 
p <- c(rep(seq(0.4,0.9, length=100), 50), 
rep(seq(0.2,0.6, length=100), 50)) 
p <- data.frame(cbind(Real, p)) 

#install and load package 
install.packages("pROC") 
library(pROC) 

#apply roc function 
analysis <- roc(response=p$Real, predictor=p$p) 

#Plot ROC Curve 
plot(1-analysis$specificities,analysis$sensitivities,type="l", 
ylab="Sensitiviy",xlab="1-Specificity",col="black",lwd=2, 
main = "ROC Curve for Simulated Data") 
abline(a=0,b=1) 
abline(v = opt_t) #add optimal t to ROC curve 
Смежные вопросы