具有年度时间序列的整个Python /熊猫数据框的插补

时间:2019-12-04 17:23:16

标签: python pandas dataframe time

  

在超过25年的时间里,数据框遍及50个国家/地区,具有80个功能(在规模上广泛变化)。      

    

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

  

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

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,这些值将高很多,而逻辑性将大大降低。
  
      
  • 我知道估算永远都不是完美的,但是在这种情况下,可以肯定地使估算更加精确

  •   
  • 如果该国家/地区多年来一直存在明显的趋势,那么我该如何反映这一点,同时又将估算值保持在与特定国家/地区的特征相匹配的规模上?

  •   

1 个答案:

答案 0 :(得分:0)

您可以尝试以下技术。

  1. 随机森林插补。

    you can refer to this paper

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

  3. 日志返回