簡體   English   中英

具有年度時間序列的整個 Python/Pandas 數據框的插補

[英]Imputation for an Entire Python/Pandas Dataframe with Yearly Time Series

Dataframe 50 個國家,80 個特征(規模變化很大),超過 25 年。

特征值之間的差異以及同一特征中每個國家/地區的值之間的差異很大。

試圖一次准確地估算整個數據幀中的缺失值。

使用Mean嘗試SimpleImputer ,但這將給出整個特征列的平均值,並忽略該特定國家/地區的任何年度時間趨勢。

  • 這導致較小國家的估算值非常不准確,因為它們的估算值也反映了所有較大國家/地區的該特征列的平均值
  • 而且,如果該特征在所有國家/地區都有下降的趨勢,由於平均值遠大於較小國家的平均值,因此將被忽略。

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. 隨機森林插補。

    你可以參考這篇論文

  2. 向后向前填充(盡管它只會考慮年份)。

  3. 日志返回

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM