【发布时间】:2018-04-02 16:52:22
【问题描述】:
首先,我想向整个社区表达我的感激之情 - 通过浏览论坛,我学到了很多东西。
我有一个关于变量分组的问题,希望能得到帮助。
我有一个包含多列(“1”到“5”)的数据集。我想以这样一种方式对数据进行分组,即“1”列(Banding)的平均值最接近 100%。例如,假设数据如下所示:
Banding Gender Country Type BirthYear Salary
220.9% Male Canada alpha 1962 7,779.15
112.2% Male Canada alpha 1946 1,355.64
80.8% Male Canada alpha 1959 24,535.52
83.7% Male Canada alpha 1943 3,961.32
112.6% Male Canada alpha 1965 17,388.12
146.2% Male Canada beta 1943 2,915.33
54.8% Male Canada beta 1949 5,005.50
138.6% Male Canada beta 1949 17,297.12
141.5% Male Canada beta 1942 494.52
137.0% Male Canada beta 1943 2,054.52
54.0% Male UStates alpha 1940 208.56
62.1% Male UStates alpha 1946 1,216.68
19.5% Male UStates alpha 1960 5,589.45
134.6% Male UStates alpha 1959 5,928.50
39.6% Male UStates alpha 1952 4,486.02
149.5% Male UStates beta 1954 3,427.36
95.6% Male UStates beta 1940 313.10
113.7% Male UStates beta 1942 927.00
120.4% Male UStates beta 1954 3,408.36
170.7% Male UStates beta 1937 606.60
88.1% Male Canada alpha 1941 727.67
201.1% Male Canada alpha 1946 1,715.88
347.3% Male Canada alpha 1969 1,438.92
380.3% Male Canada alpha 1941 282.60
506.2% Male Canada alpha 1942 1,167.48
418.7% Female Canada beta 1943 934.40
109.0% Female Canada beta 1952 4,831.43
223.7% Female Canada beta 1953 2,161.06
193.8% Female Canada beta 1954 5,119.91
83.9% Female Canada beta 1963 14,716.20
76.3% Female UStates alpha 1960 6,255.56
241.6% Female UStates alpha 1944 1,567.68
79.9% Female UStates alpha 1942 622.77
42.8% Female UStates alpha 1952 2,149.20
78.0% Female UStates alpha 1951 2,689.20
65.7% Female UStates beta 1951 11,721.19
179.7% Female UStates beta 1923 1,362.00
136.0% Female UStates beta 1945 528.48
74.1% Female UStates beta 1966 25,290.89
127.1% Female UStates beta 1963 7,451.59
19.2% Female Canada alpha 1942 2,070.19
116.2% Female Canada alpha 1936 298.66
118.6% Female Canada alpha 1958 428.28
108.1% Female Canada alpha 1954 3,610.08
99.1% Female Canada alpha 1943 519.48
135.9% Female UStates beta 1940 63.96
144.2% Female UStates beta 1968 23,851.96
119.3% Female UStates beta 1936 1,376.76
112.9% Female UStates beta 1951 2,527.56
129.0% Female UStates beta 1949 1,061.88
我想得到一个看起来像第二个表的输出。从第二个表中,程序确定 BirthYear 不是一个重要变量,并同时对薪水进行了分组,以使“分组”的 bin 尽可能接近 100。使用所有变量并不重要,但最好在每个分组中有最少数量的样本。
现在,我正在使用 Excel 中的一系列数据透视表和 R 中的 CART 分析来使条带接近 100。这是大量的试验/错误,需要很多小时(真实的数据集包含许多变量和超过 50,000 行)。
Gender Country Type Salary Banding
Male Canada and Ustates Alpha <1000 112.5
Male Canada and Ustates Alpha 1000-4000 117
Male Canada and Ustates Alpha >4000 108
Male Canada and Ustates Beta <1000 110
Male Canada and Ustates Beta 1000-4000 98
Male Canada and Ustates Beta >4000 97
Female Canada Alpha <1000 100
Female Canada Alpha 1000-4000 115
Female Canada Alpha >4000 117.5
Female Canada Beta <1000 118
Female Canada Beta 1000-4000 110
Female Canada Beta >4000 115
Female Ustates Alpha <1000 102
Female Ustates Alpha 1000-4000 99
Female Ustates Alpha >4000 101
Female Ustates Beta <1000 116
Female Ustates Beta 1000-4000 102
Female Ustates Beta >4000 98
谢谢大家。任何帮助都是感谢朋友。
快乐编码。
【问题讨论】:
-
组(性别 x 国家 x 类型)是固定的吗?所有组最终都会有相同的薪水箱吗?您希望 110 和 115 的 2 个垃圾箱还是 101,111,116 的 3 个垃圾箱?您如何在接近 100 和 bin 数量之间进行权衡?
-
@MaxFt。感谢您的澄清问题。这些组确实都是固定的。工资箱不必相同(尽管大多数情况下它们是相同的)。过去,当我使用 Pivot 表/CART 进行这种分析时,我通常希望每个最终 bin 中的样本数量最少(~1000)。如果我遇到这样一种情况,即箱数的增加将箱中的样本减少到小于 1000,我将这些箱组合在一起。谢谢你的朋友。
-
每个 bin 至少有 1000 个观察值。假设您有一个由 6000 人组成的小组。你宁愿选择 2 个 3000 人的工资箱,平均为 90 和 110,还是 3 个 2000 人的工资箱,平均为 98,105,115?例如。我的问题是:组内或组间差异是否重要?或者,重要的是您与所有组的 100 人的平均距离
-
@MaxFt。再次感谢。我明白你的问题。主要目标是保持所有组的平均距离为 100。我遇到了一些与您发布的情况类似的情况:1)2 箱 3000; 2) 3 个 2000 的 bin。在这些情况下,如果在添加另一个 bin 后平均 Banding 没有接近 100,那么我就错误地选择了更少的 bin。谢谢。
标签: r database algorithm function