分类表和ROC曲线-使用lrm的R的logistic回归

分类表和ROC曲线-使用lrm的R的logistic回归,r,roc,logistic-regression,confusion-matrix,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

我想在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

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

> f <- lrm(ch ~ age)
> class(f)
[1] "lrm" "rms" "glm"
>f类(f)
[1] “lrm”“rms”“glm”
因此,您应该能够使用上面使用的普通
predict
方法。哈雷尔教授建议不要使用分割样本验证和使用ROC曲线进行模型比较。他在他的软件包中为更好的方法提供了机制