2013-11-27 4 views
2

Я хочу иметь классификационную таблицу для логистической регрессии с использованием функции lrm в rms-пакете, а затем построить график кривой. Я выполнил это с использованием функции glm. Пример кодаТаблица классификации и кривая ROC - логическая регрессия в R с использованием lrm

train<-sample(dim(data)[1],.8*dim(data)[1]) #80-20 training/test 
datatrain<-data[train,] 
datatest<-data[-train,] 
fit<-glm(Target ~ ., data=datatrain,family=binomial()) #Target is 0/1 variable 
prob=predict(fit,type=c("response"),datatest) 
datatest$prob=prob 
library(pROC) 
ROC <- roc(Target==1 ~ prob, data = datatest) 
plot(ROC) 
confusion<-table(prob>0.5,datatest$Target) 
errorrate<-sum(diag(confusion))/sum(confusion) 
errorrate 

Как получить матрицу путаницы, используя функцию lrm?

ответ

1

Функция lrm возвращает объект соответствия, который наследуется от класса glm. Это явно не указано на странице справки lrm, но это достаточно легко проверить. После запуска кода установки в первом примере на странице ?lrm

> f <- lrm(ch ~ age) 
> class(f) 
[1] "lrm" "rms" "glm" 

Таким образом, вы должны быть в состоянии использовать обычный predict метод, который вы использовали, выше. Профессор Харрелл советует не использовать проверку сплит-выборки и использование кривых ROC для сравнения моделей. Он предоставляет механизмы для лучших методов в своем пакете.