使用smbinning包的多个预测变量

时间:2016-04-08 16:18:30

标签: r

这可能不是正确的地方,但我不知道还能在哪里问它。我正在尝试使用smbinning包。特别是,我试图通过多个预测变量进行bin。问题是package documentation中的所有示例只处理一个预测变量。我天真地尝试过这个:

result=smbinning(df=training,y="FlagGB",x=".,",p=.05)

似乎执行正常,但如果我试图运行result$ivtable我收到了错误

Error in result$ivtable : $ operator is invalid for atomic vectors

有没有人知道a)如何让smbinning接受多个预测因子,或者它是否能够使用另一个包; b)如何解决上面列出的具体错误?

3 个答案:

答案 0 :(得分:0)

您是否查看了“信息”包?它似乎正在完成这项工作,但没有设施来重新编码变量。如果有的话,我一直无法找到。否则,它是一个非常好的包,用于探索和分析变量。

答案 1 :(得分:0)

对于问题a),你应该使用sumiv方法,它可以一步计算所有变量的IV。代码如:

sumivt = smbinning.sumiv(chileancredit.train,Y = “FlagGB”)

sumivt#按特征显示IV表

答案 2 :(得分:0)

我已经解决了问题,因为训练可能不是数据框,你必须使用as.data.frame(训练)将训练转换为数据框。你可以看到smbinning代码(https://github.com/cran/smbinning/blob/master/R/smbinning.R#L490),有这个块

i=which(names(df)==y) # Find Column for dependant

j=which(names(df)==x) # Find Column for independant

if (!is.numeric(df[,i]))

{ 
    return("Target (y) not found or it is not numeric")
} 

其次,y FlagGB必须是数字,如果你的y变量是因子,你必须转换为数字,你可以使用as.numeric(as.character(y))而不是直接使用as.numerical() 问题与"Target (y) not found or it is not numeric" -Package smbinning - R

类似