我应该如何转换包括零在内的非负数据?

机器算法验证 数据转换 大数据
2022-01-28 11:24:40

如果我有高度倾斜的正面数据,我经常会记录日志。但是我应该如何处理包含零的高度偏斜的非负数据?我已经看到使用了两种转换:

  • log(x+1)它具有 0 映射到 0 的简洁特征。
  • log(x+c)其中 c 被估计或设置为一些非常小的正值。

还有其他方法吗?有什么好的理由比其他方法更喜欢一种方法吗?

4个回答

没有人提到反双曲正弦变换。所以为了完整起见,我在这里添加它。

这是 Box-Cox 变换的替代方法,定义为

f(y,θ)=sinh1(θy)/θ=log[θy+(θ2y2+1)1/2]/θ,
在哪里θ>0. 对于任何值θ,零映射到零。还有一个允许移位的双参数版本,就像双参数 BC 变换一样。Burbidge、Magee 和 Robb (1988)讨论了 IHS 变换,包括估计θ.

IHS 转换适用于在整条实线上定义的数据,包括负值和零。对于较大的值y它的行为类似于对数转换,无论θ(0除外)。极限情况为θ0f(y,θ)y.

在我看来,IHS 转型应该比现在更广为人知。

在我看来,最合适的转换选择取决于模型和上下文。

“0”点可能源于几个不同的原因,每个原因可能需要区别对待:

  • 截断(如 Robin 的示例):使用适当的模型(例如,混合模型、生存模型等)
  • 缺失数据:在适当的情况下估算数据/删除观察结果。
  • 自然零点(例如,收入水平;失业者的收入为零):根据需要进行转换
  • 测量仪器的灵敏度:也许,添加少量数据?

我并没有真正提供答案,因为我怀疑当你有零时没有通用的“正确”转换。

当变量用作回归中的独立因素时,一种有用的方法是将其替换为两个变量:一个是它是否为零的二元指标,另一个是原始变量的值或它的重新表达,比如它的对数。Hosmer & Lemeshow 关于逻辑回归的书中讨论了这种技术(我敢肯定,在其他地方)。原始变量正数部分的截断概率图可用于识别适当的重新表达。(有关示例,请参见https://stats.stackexchange.com/a/30749/919上的分析。)

当变量是线性模型中的依赖变量时,删失回归(如Tobit)可能很有用,再次避免了生成起始对数的需要。这种技术在计量经济学家中很常见。

带移位的对数变换是Box-Cox 变换的特例

y(λ1,λ2)={(y+λ2)λ11λ1when λ10log(y+λ2)when λ1=0

这些是负值的扩展形式,但也适用于包含零的数据。Box and Cox (1964) 提出了一种算法来为λ的使用最大似然。这给你最终的转变。

更喜欢 Box-Cox 变换的一个原因是它们的开发是为了确保线性模型的假设。有一些工作表明,即使您的数据无法转换为正态,那么估计的λ仍然导致对称分布。

我不确定这如何解决您的数据,因为它可能是λ=(0,1)这只是您提到的日志转换,但可能值得估计所需的λ的,看看另一个转换是否合适。

在 Rboxcox.fit中,包中的函数geoR将为您计算参数。