在R ...贷款违约中发现错误分类率

时间:2013-12-13 17:53:27

标签: r

我有一个包含10000个消费者贷款的数据集,我创建了一个模型来预测一个人是否会默认,并且响应变量是1(默认值)或0(不是默认值)。我使用step()来找到一个带有训练集(8000点)的glm模型,但我的任务是确定模型在预测测试集的默认值(2000点)时的有效性。当我试图获得错误率时,R正在吐出巨大的数字:

我的注册表有Y响应和6个变量。这就是我试图获取错误率的方法:

preddreg <- predict(dreg, newdata=test, type="response")
predfull <- predict(full, newdata=test, type="response")
errorreg <- (test,1) - (preddreg = 1)
errorfull <- (test,1) - (predfull = 1)

mean(abs(errorreg))
##I keep getting 37, it should be a small decimal in the .20 range
mean(abs(error full))
##I get the same huge number

是否有更简单的方法来检查测试数据集以获得错误分类率?我把头发拉了出来,花了10个小时试图获得合理的错误率。

1 个答案:

答案 0 :(得分:0)

语法preddreg = 1在这里没有多大意义。如果您要求错误分类率,则需要为预测概率设置阈值。以下是如何使用reg的阈值来获取0.5模型的错误分类。在这里,我假设default是结果变量的名称(我无法通过阅读您的帖子告诉姓名):

preddreg <- predict(dreg, newdata=test, type="response")

# Rows are correct outcome, columns are prediction with threshold 0.5
tab <- table(test$default, preddreg >= 0.5)
tab   # Display the confusion matrix
accuracy.reg <- sum(diag(tab)) / sum(tab)
accuracy.reg  # Output accuracy