【问题标题】:Imputation for an Entire Python/Pandas Dataframe with Yearly Time Series具有年度时间序列的整个 Python/Pandas 数据帧的插补
【发布时间】:2019-12-04 17:23:16
【问题描述】:

数据框 50 个国家/地区,80 个功能(规模差异很大),超过 25 年。

特征值与同一特征中每个国家/地区的值之间的差异很大。

尝试一次准确地估算整个数据帧中的缺失值。

尝试使用 SimpleImputerMean,但这会给出整个特征列的平均值,并忽略该特定国家/地区的任何年度时间趋势。

  • 这导致较小国家/地区的估算值非常不准确,因为它们的估算值也反映了所有较大国家/地区的该特征列的平均值
  • 并且,如果该特征在所有国家/地区都有下降的趋势,则由于平均值远大于较小的国家/地区,因此将被忽略。

TLDR;

目前:

       Year     x1     x2        x3   ... 
  
USA    1990     4      581000    472
USA    1991     5      723000    389
etc...

CHN    1990     5      482000    393
CHN    1991     7      623000    512
etc...

CDR    1990     1      NaN       97
CDR    1991     NaN    91000    NaN
etc...

我如何才能最准确、最有效地估算缺失值,其中估算考虑到国家和特征的规模,同时注意年度时间趋势??

目标:

       Year     x1     x2        x3   ... 
  
USA    1990     3      581000    472
USA    1991     5      723000    389
etc...

CHN    1990     5      482000    393
CHN    1991     7      623000    512
etc...

CDR    1990     1     (87000)    97
CDR    1991    (3)     91000    (95)
etc...

其中 38700095 将是合适的值,因为它们遵循其他国家/地区的一般时间趋势,但这些值会缩放到同一特征中的其他值特定国家(在本例中为 CDR)

  • 使用 SimpleImputer,这些值会高得多,而且逻辑上要低得多。
  • 我知道插补永远不会完美,但在这种情况下肯定可以更准确

  • 如果该国家/地区多年来有明显的趋势,我如何在将估算值保持在与特定国家/地区的特征相匹配的范围内反映这一点?

【问题讨论】:

    标签: python pandas dataframe time


    【解决方案1】:

    您可以尝试以下技巧。

    1. 随机森林插补。

      you can refer to this paper

    2. 向后向前填充(尽管它只考虑年份)。

    3. 日志返回

    【讨论】:

      猜你喜欢
      • 2022-11-03
      • 1970-01-01
      • 2021-01-09
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 2016-08-13
      • 2022-01-12
      相关资源
      最近更新 更多