“ 三种方法对比来看,非对称变量在聚类分析中选用百分位秩和 Tukey 正态分布

比较多,在回归分析中取对数比较多。因为商业上的聚类模型关心的是客户的排序

情况,回归模型关心的是其具有经济学意义,自然对数表达的是百分比的变化。”

---摘自CDA数据分析师Level II教材6.3.6《连续变量分布形态转换》。

最近在处理一组经济数据时,我们发现模型的表现非常不稳定。经过排查,问题出在数据的分布形态上。很多社会经济变量,比如收入、房价、交易额,都存在右偏问题,导致传统的建模方法难以拟合。

这让我想到了数据科学中的一个重要环节——连续变量分布形态转换。当数据分布不均匀时,我们可以使用不同的转换方法,使数据更符合建模需求。但在回归分析聚类分析中,我们应该如何选择合适的方法呢?

为什么要转换数据的分布形态?

在机器学习和统计建模中,许多算法都有特定的假设。例如,线性回归假设残差服从正态分布,而某些聚类算法假设特征空间中的样本分布均匀。但在现实中,许多变量的分布是偏态的,尤其是在金融、经济和商业数据中,比如:

  • 收入水平:大部分人收入集中在中低水平,极少数人收入极高 → 右偏分布
  • 公司利润:大多数公司盈利有限,少数公司盈利巨大 → 长尾分布
  • 房价:大多数房价较低,部分豪宅价格极高 → 幂律分布

如果不进行适当的转换,数据的偏态性可能会导致模型表现不稳定,甚至误导分析结果。

数据偏态带来的问题

影响回归分析的稳定性:如果目标变量是右偏的,那么回归模型可能会受到极端值的干扰,导致预测不准确。

影响聚类结果:如果特征值分布不均匀,聚类算法可能会被数据的某些部分主导,会形成一些极端的聚类,因此,合理的分布转换至关重要。那么,如何选择合适的方法呢?

三种常见的分布转换方法

方法 1:百分位秩转换(Percentile Rank Transformation)

核心思路

• 将变量从小到大排序,赋予序列号,并除以样本总量,使变量值落入0,100的区间内。

适用于聚类分析,因为聚类模型更关心数据的相对顺序,而不是绝对数值。

百分位秩用于衡量一个数据点在整个数据集中的相对位置。其计算公式如下:

其中:

• P_i  是第  i  个数据点的 百分位秩(Percentile Rank),值域为 **[0, 100]**。

• r_i  是该数据点在有序数据集中的 排名(Rank),即从小到大排序后的序号。

• N  是 总样本数

示例

假设我们有 10 个人的收入数据(单位:万元):

[3, 5, 7, 10, 12, 15, 20, 30, 50, 80]

我们先对数据进行升序排列,并计算每个数据的百分位秩:

所以,对于一个新的数据点,如果它的百分位秩是 70%,这意味着70% 的数据点小于或等于它

适用于:

• 聚类分析(因为聚类关注的是数据的相对顺序)。

• 排序和排名类问题(如信用评分分段)。

方法 2:Tukey 正态转换(Tukey Transformation to Normality)

核心思路

• 先进行百分位秩转换,然后映射到标准正态分布,确保数据呈对称分布,适用于统计分析。

转换公式

假设数据的百分位秩是  P_i ,那么可以使用 标准正态分布的逆累积分布函数(Inverse CDF 或 Percent-Point Function) 来转换为 Z 分数。

Z 分数的计算公式是:

其中:

• Z  是标准正态分布下的 Z 分数(也称为标准化值),

• Phi^{-1}  是正态分布的逆累积分布函数,

• P_i  是数据点的百分位秩。

示例

如果我们将上面的百分位秩转换为标准正态值(Z 分数):

适用于:

• 需要假设变量服从正态分布的模型,如分类模型、聚类分析

• 适用于数据分布严重偏态的情况。

方法 3:自然对数转换(Log Transformation)

核心思路

对数变换可以拉近右偏数据,使其更加对称,特别适用于经济和金融数据。

数学公式

A = ln(x)

如果仍然偏态,可以进一步使用二次对数

A = ln(ln(x))

示例

假设我们对上面的收入数据取自然对数:

适用于:

回归分析,尤其是经济学数据(如收入、利润)。

• 解释数据的百分比变化,如增长率。

回归 vs. 聚类:如何选择正确的方法?

数据分布的转换并不是万能的,但它可以有效改善建模效果。回归分析更适合使用对数转换,更关注数值的经济学意义;而聚类分析更适合百分位秩转换或 Tukey 变换更注重排序。