Рассчитать много AUC в R

Я новичок в R. Я использую пакет ROCR в R для расчета AUC, что я могу сделать для одного предиктора. Я хочу выполнить множество расчетов AUC для 100 различных переменных.

Что я сделал до сих пор, так это следующее:

varlist <- names(mydata)[2:101]
formlist <- lapply(varlist, function(x) paste0("prediction(",x,"mydata$V1))

Однако тогда формулы в текстовом формате, и as.formula дает мне ошибку. Любая помощь приветствуется! Заранее спасибо!


person user2379487    schedule 13.05.2013    source источник
comment
Вы можете использовать цикл for и сохранять каждое значение в векторе. Также пакет pROC был бы лучше для вашей проблемы!!!   -  person Duck    schedule 14.05.2013
comment
Функция внутри вашего lapply выглядит так, как будто она просто выводит оператор вроде prediction(varmydata$V1). Я предполагаю, что вы действительно хотите запустить эту команду. Если это так, вы, вероятно, хотите что-то вроде lapply(varlist,function(x) prediction(mydata['x'])), но трудно сказать без воспроизводимой ситуации. Кроме того, похоже, что в вашем коде отсутствует кавычка.   -  person nograpes    schedule 14.05.2013
comment
Спасибо за вашу помощь! Вы решили это с помощью квадратных скобок (и вы пишете, что я пропустил цитату).   -  person user2379487    schedule 14.05.2013
comment
@user2379487 user2379487 Я сделал репост в качестве ответа, если вы хотите это проверить.   -  person nograpes    schedule 14.05.2013


Ответы (2)


Функция внутри вашего lapply выглядит так, как будто она просто выводит оператор вроде prediction(varmydata$V1). Я предполагаю, что вы действительно хотите запустить эту команду. Если это так, вы, вероятно, хотите что-то вроде

lapply(varlist,function(x) prediction(mydata[x]))

но трудно сказать без воспроизводимой ситуации. Кроме того, похоже, что в вашем коде отсутствует кавычка.

person nograpes    schedule 13.05.2013

Если я правильно вас понял, вы хотите использовать первый столбец mydata в качестве прогнозов, а все остальные переменные - в качестве меток, одну за другой.

Правильно ли так обращаться с mydata? Такой способ довольно необычен. Чаще используются одни и те же истинные метки для нескольких разных прогнозов (например, повторная перекрестная проверка, сравнение разных классификаторов).

Однако, чтобы ответить на ваш первоначальный вопрос:

predictions и labels должны иметь одинаковую форму для ROCR::prediction, например.

  • либо как матрица

    prediction (matrix (rep (mydata$V1, 10), 10), mydata [, -1])
    
  • или в виде списков:

    prediction (mydata [rep (1, ncol (mydata) - 1)], mydata [-1])
    
person cbeleites unhappy with SX    schedule 14.05.2013