分类表和ROC曲线 - 使用lrm的R中的逻辑回归

时间:2013-11-27 11:07:31

标签: r roc logistic-regression confusion-matrix

我希望在rms包中使用lrm函数得到逻辑回归的分类表,然后绘制roc曲线。我已经使用glm函数执行此操作。示例代码

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 个答案:

答案 0 :(得分:1)

lrm函数返回一个继承自glm-class的fit对象。这在lrm帮助页面中没有明确说明,但它很容易验证。在?lrm页面上的第一个示例中运行设置代码后

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

因此,您应该能够使用上面使用的普通predict方法。 Harrell教授建议不要使用分割样本验证和使用ROC曲线进行模型比较。他在他的包中提供了更好方法的机制。