2

我想在 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 函数获取混淆矩阵?

4

1 回答 1

0

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

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

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

于 2013-11-27T15:39:32.067 回答