2013-05-13 2 views
0

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

То, что я сделал до сих пор является следующее:

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

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

+1

Вы можете использовать цикл с для сохранения и eacha значение в векторе. Также пакет pROC будет лучше для вашей проблемы !!! – Duck

+0

Функция внутри вашего 'lapply' выглядит так, как будто она выводит выражение типа« предсказание (varmydata $ V1) ». Я предполагаю, что вы действительно хотите * запустить * эту команду. Если это так, вы, вероятно, хотите что-то вроде 'lapply (varlist, function (x) prediction (mydata ['x'])), но это трудно сказать без воспроизводимой ситуации. Кроме того, похоже, что у вашего кода отсутствует котировка. – nograpes

+0

Спасибо за помощь! Вы решили это с квадратными скобками (и вы пишете, что мне не хватает цитаты). – user2379487

ответ

0

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

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

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

0

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

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

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

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

  • либо в виде матрицы

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

    prediction (mydata [rep (1, ncol (mydata) - 1)], mydata [-1]) 
    
Смежные вопросы