如何对以不同频率(工资)报告的分布数据进行分类,显示混合线性和非线性?

数据挖掘 熊猫 采样 分配 描述性统计
2022-03-16 04:27:28

我正在研究工资表,并希望收到有关处理工资数据的建议。

客观的

我的兴趣是估算组织中不同层级对应的薪水。

方法

如何装箱

我考虑过使用分位数:知道组织中有 10 个级别(例如总裁、主管、...、工人),我想估算相应级别的平均工资。

我想使用分位数;我在看 pandas 的文档:

哪个选择更合适?

描述观察

我的分布在某一点上似乎是线性的,然后似乎遵循指数曲线:

在此处输入图像描述

你能建议近似分位数的最佳方法吗?

我怀疑是否针对整个分布计算分位数,或者是否推断出两个分布以最好地反映观察结果。

我考虑将一个分布提取为低于x 个标准差的数据点的集合,以及大于x 个标准差的点的集合。

那么,我将分别拥有这些分布:

在此处输入图像描述

(描述较低的薪级,在我看来是线性的)

在此处输入图像描述

(描述更高的薪水,在我看来是指数级的)

非常感谢您对分析的建议。

关于样本的注意事项

请记住,每个值的报告频率都不同(对于较低的工资表,有更多的报告,这是有道理的,因为有更多的营业额)。

我应该考虑估计错误吗?

1个回答

我将只回答两个函数之间的区别qcutcut因为这是一个非常重要的区别:

  • 第一个qcut确实是关于分位数的,这意味着它是将数据分成箱,每个箱包含相同数量的点例如,如果您使用十分位数,则意味着第一个十分位数中的人数与最后一个(或任何其他)中的人数相同,因此有用的信息是每个 bin的值范围。例如,如果第一个十分位数的范围是 0 到 500,那么 10% 的人的工资低于 500。
  • 第二个cut不是关于分位数,它只是创建所有覆盖相等长度值区间的箱。例如,第一个区间是 0-500,第二个是 500-1000,等等。在这种情况下,每个 bin 中的点数通常是不同的,这就是有用的信息。通常这是构建直方图的方式:每个 bin 中的间隔相等但频率(数据点数)可能不同。

[根据OP的评论编辑]

数据点是报告的每个公司角色的薪水(实际上是报告的平均值)

好的,所以您拥有的数据包含每个角色的薪水分布。

X轴,简单来说就是每个角色对应的id

将序数/分类变量转换为连续变量并不是一个好主意,在这种情况下,您可以改为为每个角色绘制一个条形图(在 X 轴上显示角色名称)。更准确地说,您可以为每个角色绘制一个箱线图,按照平均工资保持角色的顺序。通过这种方式,不仅可以可视化平均值(通常在箱线图中由中位数代替),还可以可视化每个角色有多少变化。

另一个可视化想法是为每个角色绘制不同颜色的工资的完整分布。在这种情况下,X 通常是工资,Y 是在这个工资区间(bin)内有多少人,不同颜色的堆叠条显示按角色划分的比例。这不仅会显示薪水和角色之间的联系,还会显示每个类别中有多少人。

如何对分布进行分箱(qcut 或 cut)

我怀疑这是一个错误的问题,因为显然您对这些概念以及如何表示它们并不是很熟悉。所以我建议你首先使用我提到的可视化想法:通常这些不需要你自己做任何分箱,库应该会处理它(参见Python 中的示例)。

知道您是否需要cutqcut取决于您想要对结果做什么。正如我上面所说,分位数对于解决诸如“80% 的员工的薪水低于 X”之类的问题很有用,而cut直接表示“X% 的员工的薪水在 100 到 150 之间”。最终,两者代表相同的信息,只是在不同的视角下。如果差异仍然令人困惑,我建议您从常规箱开始,cut因为分位数解释起来稍微复杂一些。