r - R 等频分箱函数
问题描述
我希望能够通过 R 将我的 xvars 放入相同频率的 bin 中,然后根据每个 bin 中的响应变量分析变量,这将有助于选择我将哪些变量放入我的逻辑模型中。我已经尝试通过包 rbin 使用 rbin_equal_freq 但这默认为 20 个 bin 的输出,这有助于选择 vars,但最好我想要 5 个 bin。我是 R 和建模的新手,任何帮助都会很好,即使能够快速有效地将 tibble 转换为 5 个垃圾箱。
rbin_equal_freq(df, y, x, bins = 5).
Output:
lower_cut upper_cut bin_count good bad good_rate woe iv entropy
<dbl> <dbl> <int> <int> <int> <dbl> <dbl> <dbl> <dbl>
1 -12.3 -6.97 33 0 33 0 Inf Inf NaN
2 -6.86 -5.15 33 1 32 0.0303 1.43 0.0602 0.196
3 -5.12 -4.09 33 2 31 0.0606 0.709 0.0192 0.330
4 -4.04 -3.18 33 1 32 0.0303 1.43 0.0602 0.196
5 -3.15 -2.62 33 2 31 0.0606 0.709 0.0192 0.330
6 -2.55 -1.99 33 3 30 0.0909 0.270 0.00331 0.439
7 -1.98 -1.32 33 4 29 0.121 -0.0513 0.000135 0.533
8 -1.30 -0.878 33 4 29 0.121 -0.0513 0.000135 0.533
9 -0.878 -0.478 33 2 31 0.0606 0.709 0.0192 0.330
10 -0.463 -0.0775 33 3 30 0.0909 0.270 0.00331 0.439
11 -0.0775 0.447 33 1 32 0.0303 1.43 0.0602 0.196
12 0.449 1.05 33 4 29 0.121 -0.0513 0.000135 0.533
13 1.05 1.65 33 3 30 0.0909 0.270 0.00331 0.439
14 1.65 2.32 33 5 28 0.152 -0.310 0.00542 0.614
15 2.32 2.96 33 2 31 0.0606 0.709 0.0192 0.330
16 2.96 3.59 33 5 28 0.152 -0.310 0.00542 0.614
17 3.62 4.73 33 6 27 0.182 -0.528 0.0171 0.684
18 4.75 5.98 33 8 25 0.242 -0.893 0.0555 0.799
19 5.99 8.12 33 8 25 0.242 -0.893 0.0555 0.799
20 8.13 16.4 29 12 17 0.414 -1.68 0.217 0.978
我还使用了在此处创建的不同函数来尝试创建相同频率的 bin,但我不熟悉该语言,因此我们将不胜感激任何建议。
解决方案
我不确定r_bin_equal
在做什么……这似乎很奇怪,它需要两个变量而不仅仅是一个变量——它必须做的不仅仅是对单个变量进行分箱。
相同频率的 bin 在 quantiles处有分界点。我们可以编写一个快速函数用于quantile
计算断点和分cut
箱数据:
bin_equal = function(x, nbin = 5) {
breaks = quantile(x, probs = seq(0, 1, length.out = nbin + 1), na.rm = TRUE)
return(cut(x, breaks = breaks, labels = 1:nbin, include.lowest = TRUE))
}
bin_equal(rnorm(20), nbin = 3)
# [1] 2 1 2 2 3 3 3 1 1 3 3 3 1 2 1 3 2 2 1 1
# Levels: 1 2 3
请注意,这将返回一个factor
.
推荐阅读
- c++ - R API for C 中 R.3.4.4 和 R.3.5.1 之间的区别
- javascript - 用于 $.extend 原型继承的 TypeScript 接口
- ignite - org.apache.ignite : 连接集群失败,连接失败,重连失败
- angular - 动态附加指令在 Angular 5 中不起作用?
- java - 如何为私有服务方法和内部私有的公共方法编写单元测试?
- wpf - 基于内容的带有 RowDefinitions 的网格
- javascript - 为什么节点安装在全局而不是本地?
- vb.net - 是否有像“显示”这样的表单事件,但每次显示代码时都会运行代码,而不是第一次?
- javascript - 如何在内联 onclick 处理程序中播放视频?
- angular - 与 rxjs 升级到 6“switchMap 不是函数”相关的错误