我想知道如何将负值转换为Log()
,因为我有异方差数据。我读到它适用于公式,Log(x+1)
但不适用于我的数据库,因此我继续得到NaN。例如,我收到以下警告消息(我没有放入完整的数据库,因为我认为使用负值之一足以显示示例):
> log(-1.27+1)
[1] NaN
Warning message:
In log(-1.27 + 1) : NaNs produced
>
提前致谢
更新:
这是我的数据的直方图。我正在使用化学测量的古生物学时间序列,例如Ca和Zn之类的变量之间的差异太大,那么我需要某种类型的数据标准化,这就是为什么我要测试log()
功能。
这是我的原始数据
告诉我们更多有关数据的信息,包括范围,平均值,负值,零值和正值的频率。只要合理地认为平均响应为正,则具有对数链接的广义线性模型可能对数据最有意义。可能您根本不应该进行转换。
—
Nick Cox
感谢您添加详细信息。对于此类数据,0具有应被尊重的含义(等于!),实际上是被保留的。由于这个和其他原因,我将使用多维数据集根。实际上,您将需要对进行一些更改
—
尼克·考克斯
sign(x) * (abs(x))^(1/3)
,具体取决于软件语法。更多关于立方根参见例如stata-journal.com/sjpdf.html?articlenum=st0223(见电除尘器。pp.152-3)。我们使用的立方根的响应可变的可视化的帮助,可以是正的和负的性质.com / nature / journal / v500 / n7464 / full /…
为什么不转换原始变量而不是转换变量?
—
ub
您解决了数学问题。我认为,@ whuber的建议或立方根仍然会更容易使用,尤其是当常量纯粹是经验性的或变量之间有所不同时。选择转换的一个好规则是仅使用适用于您可以想象的相似数据的转换。因此 “的作品”为,但如果你的下一个批次被界定会失败 ..x > − 4 − 5
—
尼克·考克斯
log(x+1)
转型将用于只被定义x > -1
,正如当时x + 1
是积极的。最好知道您想进行日志记录转换数据的原因。