У меня есть две переменные (Условие1 & Условие 2), для которого я рассчитал ложные сигналы тревоги и скорости нажатия, и я хотел бы построить их на одном графике с отдельными кривыми для Condition1 и Condition 2. Оба этих условия имеют три точки, и оба используют одни и те же ложные сигналы тревоги. Вот что мой кадр данных выглядит следующим образом:Запланируйте кривую ROC в R с помощью ggplot2
measure <- c('False_Alarm','False_Alarm','False_Alarm', 'Hit_Rate_Condition1',
'Hit_Rate_Condition1','Hit_Rate_Condition1', 'Hit_Rate_Condition2','Hit_Rate_Condition2',
'Hit_Rate_Condition2')
point_on_curve<- c(1, 2, 3, 1, 2, 3, 1, 2, 3)
percentage <- c(0.11, 0.1, 0.01, 0.80, 0.50, 0.20, 0.80, 0.55, 0.25)
ROC_data <- data.frame(measure,point_on_curve, percentage)
ложные сигналы тревоги должны идти на оси х, а хит ставки должны идти на оси у. Обратите внимание, что я специально не интересуюсь пакетами ROC, такими как ROCR, но, скорее, я думаю, что это возможно, чтобы построить это, используя только ggplot.
Большое спасибо!
p.s. Просто чтобы показать, что я хотя бы что-то пытался и действительно не хочу получать стековый обмен, чтобы сделать свою кандидатуру для меня, я пробовал переделать DF и отделить их, чтобы сделать два графика следующим:
Condition_1 <- dcast(ROC_data, point_on_curve ~ measure)
Condition_1 <- Condition_1[which(!Condition_1$measure == Hit_Rate_Condition2),]
p <- ggplot(data=Condition_1, aes(x=False_Alarm, y=Hit_Rate)) +
geom_point() +
stat_smooth(method = "lm", formula = y ~ splines::bs(x, 1), col = "red") +
expand_limits(x = c(0, 1))
Это приводит к некоторой абсурдной линии, которая не является гладкой ROC (не то, что мне нужно), и мне все равно нужно будет объединить два ... в любом случае, должен быть простой способ сделать этот сюжет (что мне нужно сделать еще 18 раз) с оригинальным DF за один раз ...
Это пример того, как должна быть изогнутая линия (я не ищу что-то эстетически то же самое, вид кривой!)
Так вы пытались построить это самостоятельно, используя ggplot? Где именно id вы сосать? Что конкретно вы спрашиваете здесь о своем вопросе? Сейчас он читается как «пожалуйста, сделайте это для меня», который не является тем вопросом, который мы здесь поддерживаем. Возможно, вы можете отредактировать свой пост, чтобы уточнить. – MrFlick
@MrFlick Я попытался построить два отдельно, но они должны быть на одном сюжете. Я пытался понять его весь день ... Я предполагаю, что проблема связана с тем, как устроен кадр данных ... Я не уверен, что вам нужно больше информации? –
@MrFlick нечестно, я полностью застрял ... –