假设我有以下数据框,其中包含与其相关的分数的人:
Score | hasDefaulted
10 | 0
13 | 0
15 | 1
17 | 0
...
我想在R中制作一个提升图表,首先按分数对人口进行排序,然后在X轴上对人口百分比进行排序,在Y轴上进行默认值百分比。我找不到能让我控制的好包装。我已经探讨了Package Lift以及Package Gains,但我无法弄清楚如何对它们进行足够的控制来完成我上面描述的操作。例如,当我尝试使用Package Lift时,
plotLift(sort(dataFrame$Score, decreasing=FALSE), dataFrame$hasDefaulted)
但考虑到我的愿望,情节应该看起来像累积密度函数。
有人可以告诉我如何正确使用这些软件包,或者让我找到一个能够满足要求的软件包吗?提前谢谢。
答案 0 :(得分:3)
我总是尝试构建自己的代码,而不是尝试不那么灵活的东西。
以下是我认为您可以解决问题的方法:
# Creating the data frame
df <- data.frame("Score"=runif(100,1,100),
"hasDefaulted"=round(runif(100,0,1),0))
# Ordering the dataset
df <- df[order(df$Score),]
# Creating the cumulative density
df$cumden <- cumsum(df$hasDefaulted)/sum(df$hasDefaulted)
# Creating the % of population
df$perpop <- (seq(nrow(df))/nrow(df))*100
# Ploting
plot(df$perpop,df$cumden,type="l",xlab="% of Population",ylab="% of Default's")
这就是你想要的吗?
答案 1 :(得分:3)
我认为您正在搜索增益图表,而不是提升图表。我注意到它们之间存在一些混淆。有关详细信息,请参阅Lift Charts。
require(ROCR)
data(ROCR.simple)
pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels)
gain <- performance(pred, "tpr", "rpp")
plot(gain, main = "Gain Chart")