(企图为企业确定既定工资的理由而得出的结果)代替注解
如果您曾经考虑过要证明企业雇员工资中薪金部分的大小是合理的,那么在做出这样的决定时就需要清晰和简单,那么您并不孤单,而且削减的材料也适合您。 本文将介绍一种使用现代综合评估机制在企业中实施薪资辩护系统的适度尝试,以得出积分评分系统,并以贝塞尔曲线作为将积分转换为所得薪金的基础。
对habr(u)的一个小赞扬:在某种“体面”期刊上的科学文章中,在某种程度上需要撰写文章的礼节部分,我将不得不非常扭曲地扭曲文章的相关性,将大量文献纳入其中,有时还要进行不必要的出版印刷狂。 哈伯(Habr)已成为我的出路,使我可以表达自己对案件的看法,而无需对科学界进行不必要的“点头”。 同时,我强调团队对资源的教育程度不仅不值得怀疑,而且有时您必须考虑自己的合规性。
问题简要说明
现代企业的总薪酬结构是多种多样的,以广义的形式可以包含各种组成部分(图1)。 在本出版物中,我们将对基本工资感兴趣。 还应该指出的是,在工作过程中,大多数情况下都考虑了以时基工资为准的结构。
图1.总薪酬结构。我要特别指出的是,在考虑该问题时,作者的观点大部分转向了非生产人员,他们的工作很难衡量和数字化。
净时间工资不是刺激因素,但是如果违反公平和透明的原则,它将极大地影响动机的降低。 违反正义原则的行为如下:
- 规范性的当地工资支付行为是正式的,并不决定工资的实际编制和变动。
- 建立了价目表网格,以便没有类别的专家可以获得与部门主管一样多的信息(网格模糊)。
- 按付款类别划分的职位组在执行工作的复杂性方面可能存在很大差异。
- 薪水取决于员工的工作部门,而不取决于工作的复杂性。
我们还引入了一些附加条款:
分级是一种根据统一标准对每个员工(或工作场所)的活动进行评估并根据其对组织的重要性(价值)进行分配来
确定工资率的方法。
换句话说:
-这是公司中所有职位的分类,从最高到最低分类,每个职位分配有特定的薪水或薪水的“前叉”,这决定了每个职位的最低和最高关税税率。
我们的劳动法规不需要人员和商业结构的关税明细表,而雇主本人首先需要这两项作为管理劳动力资源的工具。
毫无疑问,这方面的发展是著名作家的科学著作。 而且,申请人范围很广。 也许最著名的是
Hay Group的发展。 太好了,我不会批评并把黑暗带到美丽的系统中,这是同类系统中的第一个。 我只注意到在引入这种系统的企业中,未经培训的人员不知道如何使用它,因此,在更换劳工和工资部门的职位时,没有人可以使该系统完全适应变化的条件。 因此,他们把它当作一幅伟大的古代文物,除了“老信徒”之外没有人能读,他们也不再离开了。
进行更改
(模型开发)通常,对于实现最终要获得单个数值结果所需要的多因子模型,我更喜欢基于标准树,卷积矩阵和用于将标准缩减为单个比例的系统的复杂评估方法。
简而言之,这种结构的优点在于可能:
- 应用无限数量的评估因素;
- 实现非线性和因素影响程度的可变性;
- 包括各种类型的因素(物理变化,专家估计,对应表等);
- 预测结果并在一定范围内期望值。
这种机制的易用性已成功地与所得估计值的多元组合在一起,因为即使在1-4的有限数值范围内(需要进行全面评估),您也可以获得足够的多样性。
图2.收到年级并将其转移到员工薪金的框图。当时的想法是,根据几个标准,对结构单元业务的“重要性”和该单元的具体位置进行了评估。
通常,根据此方案,需要注意:
- 对于每个单元,根据单个综合评估模型形成自己的计算;
- 在综合评估模型中,既可以使用可量化的因素,也可以使用专家因素。
- 在获得每个部门和每个职位的所有模型值之后,进行矩阵乘法,从而形成总体结果;
- 为了使等级达到工资规模,应用了一个模型来为部门员工的薪水等级。
在形成部门的重要性评估时,使用了以下标准:
- 根据流程级别:主要,辅助,服务;
- 通过要解决的任务的普遍性程度:普遍,特定,情境;
- 按互动程度:组织之间; 组织单位之间; 内部互动。
在提出的评估标准中,每个标准始终有3个选项。 这些选项的重要性从等级4到等级1按照“降序”排列。平均选项对应于等级2.5。 应用此减少量,所有估计值都可以转换为标准复杂评估量表1-4(在这里您只需要接受...我们同意)。
评估职位重要性的树的基本类型如下:
- 职位级别:经理,专家,表演者;
- 任务类型:组织,创新,规范;
- 任务的连通性:与外部环境,单元之间,单元内的连接。
集成评估模型就是一个例子,顺便说一句,我们设法“驱动”到Excel中,即 提供,显示进行评估程序有多容易。
图3.综合评估模型“单位价值”的概图。编译模型后,每个单元的标准(以及职位分别具有自己的模型)都将获得自己的评分,系统会对其进行简单考虑。 仍然需要写入这些值。
最后,成绩的“摘要”是什么样的?
图4.计算“部门重要性/职位重要性”类型的等级的示例。在这种情况下,最佳似乎是“部门重要性”和“位置重要性”的乘积。 结果差异很大,可用于确定关税等级。
最后一个组成部分
如您所记得,根据图2,现在有必要将汇率转换为薪水。
最初认为可以使用简单的线性函数完成此操作。 为此,请决策者(决策者)简单说明企业的最低和最高薪水。 看起来很简单而且合乎逻辑。
第一个明显的尝试是捕捉线性电路。 通过指定的参数,决策者(其中一所大学的负责人)获得的结果是,结构单元的负责人的等级分数为13,应获得超过20万的薪水(系主任)。
图5.使用线性转换比例将等级“暴露”于工资的示例。显然需要实施一种简单的系统来形成薪金/职等的非线性降低。 在这种情况下,需要尽可能简化最佳还原的“选择”过程。
贝塞尔曲线很偶然地浮现在脑海。 由于曲线的极端点是自动确定的(最低和最高职等/最低和最高薪水),因此决策者只需移动一个/两个点即可获得所需的曲线类型。
图6.用Excel实现的贝塞尔曲线图形控件最初,尝试仅绕过曲线的二次版本,但是在尝试构建后,很明显它们无法绕开,因此有必要实现该函数的三次版本。
为了在Excel中生成贝塞尔曲线,需要执行以下操作:
- 在此示例中,通过坐标X,Y在图上指定极点:(1; 1)和(4; 4)。 采取这样的极端坐标可使图形看起来清晰。 他不需要表现出真正的联系,而只是表现出依赖性。
- 为LPR位移的点指定坐标:一个点代表二次曲线,两个点代表三次。
- 设置曲线的计算步骤(在我们的示例中为0.5)并计算曲线的成对点。
一个例子:假设标记了极点:(X1; Y1)-(1; 1),(X4; Y4)-(4; 4)。 想象一下,还有2个额外的移位点:(X2; Y2),(X3; Y3)。 此外,每个坐标在1-4的范围内并且不包括在其中。
要为间隔Ti的给定步骤构造二次曲线的X坐标,我们可以应用以下公式:
= DEGREE(Ti; 2)* X1 + 2 *(Ti)* Ti * X2 + DEGREE(Ti; 2)* X4 ,
在X1,X2,X4中,您需要指定指向具有坐标的单元格的链接。
同样,您可以为点Y计算,用Y坐标替换X坐标。
至于三次曲线的坐标,此处的公式具有以下形式:
=度(1-Ti; 3)* X1 + 3 *度(1-Ti; 2)* Ti * X2 + 3 *(1-Ti)*度(Ti; 2)* X3 +度(Ti; 3) * X4
绘制完曲线后,决策者可以使用视觉控制工具。 但是,在应用曲线时,需要进行从指示的Y坐标获取Y坐标的处理,这本身就是最大的问题。 但是,可以实现允许您执行此类操作的VBA代码。
对于二次函数:Function __Y__X__( _ X As Double, _ X1 As Double, _ X2 As Double, _ X3 As Double, _ Y1 As Double, _ Y2 As Double, _ Y3 As Double) As Double Dim aX, bX, cX, aY, bY, cY, Temp, dis, X_1, X_2, X_f, Y_f As Double aX = X1 - 2 * X2 + X3 bX = -2 * X1 + 2 * X2 cX = X1 - X aY = Y1 - 2 * Y2 + Y3 bY = -2 * Y1 + 2 * Y2 cY = Y1 dis = bX * bX - 4 * aX * cX If aX <> 0 Then X_1 = (-bX + (dis ^ (1 / 2))) / (2 * aX) X_2 = (-bX - (dis ^ (1 / 2))) / (2 * aX) Else X_1 = -cX / bX End If If Not IsEmpty(X_1) Then If ((CDbl(CStr(X_1)) >= 0) And (CDbl(CStr(X_1)) <= 1)) Then X_f = X_1 If Not IsEmpty(X_2) Then If ((CDbl(CStr(X_2)) >= 0) And (CDbl(CStr(X_2)) <= 1)) Then X_f = X_2 Y_f = ((1 - X_f) ^ 2) * Y1 + 2 * (1 - X_f) * X_f * Y2 + (X_f ^ 2) * Y3 '=(1-R[-1]C[-1];2)*R58C2+2*(1-R[-1]C[-1])*R[-1]C[-1]*R58C3+(R[-1]C[-1];2)*R58C5 a = a __Y__X__ = Y_f End Function
对于三次函数: Function __Y__X__( _ X As Double, _ X1 As Double, _ X2 As Double, _ X3 As Double, _ X4 As Double, _ Y1 As Double, _ Y2 As Double, _ Y3 As Double, _ Y4 As Double) As Double Dim myPi, aX, bX, cX, dX, aY, bY, cY, dY, Q, P, S, Temp, fi, dis, X_1, X_2, X_3, X_f, Y_f As Double 'Exit Function 'If X1 = 1.5 Or X = 0 Or X1 = 0 Or X2 = 0 Or X3 = 0 Or X4 = 0 Then Exit Function 'Application.Volatile True myPi = WorksheetFunction.Acos(-1) aX = -X1 + (3 * X2) - (3 * X3) + X4 bX = 3 * X1 - 6 * X2 + 3 * X3 cX = -3 * X1 + 3 * X2 dX = X1 - X aY = -Y1 + 3 * Y2 - 3 * Y3 + Y4 bY = 3 * Y1 - 6 * Y2 + 3 * Y3 cY = -3 * Y1 + 3 * Y2 dY = Y1 If aX < 0.000001 And aX > -0.000001 Then _ aX = 0 If CDbl(CStr(aX)) <> 0 Then Temp = aX aX = aX / Temp bX = bX / Temp cX = cX / Temp dX = dX / Temp Q = (bX ^ 2 - 3 * cX) / 9 P = (2 * (bX ^ 3) - 9 * bX * cX + 27 * dX) / 54 S = Q ^ 3 - P ^ 2 'X1 = -1 'X2 = -1 'X3 = -1 T = T If S < 0.00000001 And S > -0.00000001 Then _ S = 0 If P < 0.00000001 And P > -0.00000001 Then _ P = 0 If Q < 0.00000001 And Q > -0.000000001 Then _ Q = 0 If S > 0 Then fi = (1 / 3) * WorksheetFunction.Acos(P / ((Q ^ 3) ^ (1 / 2))) X_1 = -2 * (Q ^ (1 / 2)) * Cos(fi) - bX / 3 X_2 = -2 * (Q ^ (1 / 2)) * Cos(fi + 2 * myPi / 3) - bX / 3 X_3 = -2 * (Q ^ (1 / 2)) * Cos(fi - 2 * myPi / 3) - bX / 3 ElseIf S = 0 Then fi = 0 X_1 = -2 * (P ^ (1 / 3)) - bX / 3 X_2 = (P ^ (1 / 3)) - bX / 3 Else If Q > 0 Then fi = (1 / 3) * WorksheetFunction.Acosh(Abs(P) / ((Q ^ 3) ^ (1 / 2))) X_1 = -2 * Sgn(P) * (Q ^ (1 / 2)) * WorksheetFunction.Cosh(fi) - bX / 3 ElseIf Q = 0 Then fi = 0 T = (dX - (bX ^ 3) / 27) X_1 = -((Abs(T) ^ (1 / 3)) * (2 * (T < 0) + 1)) - bX / 3 'T = (dX - (bX ^ 3) / 27) 'T = (Abs(T) ^ (1 / 3)) * ((T < 0) + 1) 'X_1 = -T - bX / 3 Else fi = (1 / 3) * WorksheetFunction.Asinh(Abs(P) / ((Abs(Q) ^ 3) ^ (1 / 2))) X_1 = -2 * Sgn(P) * (Abs(Q) ^ (1 / 2)) * WorksheetFunction.Sinh(fi) - bX / 3 End If End If If Not IsEmpty(X_1) Then If ((CDbl(CStr(X_1)) >= 0) And (CDbl(CStr(X_1)) <= 1)) Then X_f = X_1 If Not IsEmpty(X_2) Then If ((CDbl(CStr(X_2)) >= 0) And (CDbl(CStr(X_2)) <= 1)) Then X_f = X_2 If Not IsEmpty(X_3) Then If ((CDbl(CStr(X_3)) >= 0) And (CDbl(CStr(X_3)) <= 1)) Then X_f = X_3 a = a Else dis = cX * cX - 4 * bX * dX If bX < 0.000001 And bX > -0.000001 Then _ bX = 0 If bX <> 0 Then X_1 = (-cX + (dis ^ (1 / 2))) / (2 * bX) X_2 = (-cX - (dis ^ (1 / 2))) / (2 * bX) Else X_1 = -dX / cX End If If Not IsEmpty(X_1) Then If ((CDbl(CStr(X_1)) >= 0) And (CDbl(CStr(X_1)) <= 1)) Then X_f = X_1 If Not IsEmpty(X_2) Then If ((CDbl(CStr(X_2)) >= 0) And (CDbl(CStr(X_2)) <= 1)) Then X_f = X_2 End If a = a Y_f = ((1 - X_f) ^ 3) * Y1 + 3 * ((1 - X_f) ^ 2) * X_f * Y2 + 3 * (1 - X_f) * (X_f ^ 2) * Y3 + (X_f ^ 3) * Y4 'Debug.Print (Y_f) __Y__X__ = Y_f End Function
在此过程中,尝试在网络上找到现成的选项并进行回收,但没有发生。 还偶然发现VBA无法从负数中正确提取奇数根。 只有某种组合才能纠正这种情况:
T = (dX - (bX ^ 3) / 27) X_1 = -((Abs(T) ^ (1 / 3)) * (2 * (T < 0) + 1)) - bX / 3
*-在代码中可能还会在其他地方保留与这种计算相关的时间。 在撰写本文期间发现了一个错误)
产生的构造
因此,比较结果(根据图6中的曲线类型(右图)构建):
图7.等级转换与实际工资的比较(反映了系统的灵活性)从图中可以看出,三次函数可以使您更加“弯曲”投球得分和实际薪水的依赖性(不幸的是,经理对该选项感到满意)。
无论如何,这项工作虽然纯粹是实验性的,但实际上并未在任何地方启动,但正如作者所认为的那样,它在现实世界的开发中可能是有用的。
我希望她不要“躺在架子上”,但是需要一个人。