【问题标题】:Transforming extremely skewed data for regression analysis转换极度偏斜的数据以进行回归分析
【发布时间】:2019-08-20 00:48:05
【问题描述】:

我有一个来自住房数据集的 Pandas 系列(系列大小 = 48,2491),名为“exempt_land”。该系列的前 10 个条目是:

0         0.0
2     17227.0
3         0.0
7         0.0
10        0.0
14     7334.0
15        0.0
16        0.0
18        0.0
19     8238.0
Name: exempt_land, dtype: float64

由于数据量很大,我没有进行dummy_variable转换。

现在,我的目标是进行回归分析。因此,我想将此数据转换为 Normal

原始数据的偏度344.58峰度 = 168317.32。为了更好地理解原始数据,我还附上了原始数据的分布图概率图

Distribution Plot BEFORE transformation

Probability Plot BEFORE transformation

执行Log变换后,我得到5.21SkewnessKurtosis = 25.96。转换后的 分布概率 图现在如下所示:

Distribution Plot AFTER np.log10(exempt_land + 1) transformation

Probability Plot AFTER np.log10(exempt_land + 1) transformation

我还执行了各种其他转换(“power”、“exp”、“box-cox”、“reciprocal”),我得到了类似的糟糕结果(在互易转换的情况下,结果要差得多)。

所以我的问题是,在进行回归分析时,如何“驯服”这些数据以使其表现良好。另外,经过改造,5.21skew还是比较高的,会不会有什么问题呢? 我还可以执行哪些其他转换来使数据看起来更正常

我希望我的问题在这里很清楚。非常感谢社区提供的任何帮助。非常感谢您。

【问题讨论】:

  • 我们确实需要查看“之前的分布”图,如果您在线性 x 轴上绘制,则无法阅读;请选择一个窄得多的 x 轴(或使用 lo 或 log-log x 轴)。另外,请直接在此处发布图片,而不是指向 imgur 的链接(这些链接是短暂的,可能会损坏/衰减)
  • “我还执行了各种其他转换......我得到了类似的糟糕结果” 但是log1p() 是你想要的,根据你的图表

标签: python pandas normal-distribution


【解决方案1】:

对于所有的零,您需要使用非正态分布。某些种类的 Tobit 在这里可能是有意义的。 (您无法转换离散数据并获得较少离散数据。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    相关资源
    最近更新 更多