【发布时间】:2019-12-04 17:23:16
【问题描述】:
数据框 50 个国家/地区,80 个功能(规模差异很大),超过 25 年。
特征值与同一特征中每个国家/地区的值之间的差异很大。
尝试一次准确地估算整个数据帧中的缺失值。
尝试使用 SimpleImputer 和 Mean,但这会给出整个特征列的平均值,并忽略该特定国家/地区的任何年度时间趋势。
- 这导致较小国家/地区的估算值非常不准确,因为它们的估算值也反映了所有较大国家/地区的该特征列的平均值
- 并且,如果该特征在所有国家/地区都有下降的趋势,则由于平均值远大于较小的国家/地区,因此将被忽略。
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...
其中 3、87000 和 95 将是合适的值,因为它们遵循其他国家/地区的一般时间趋势,但这些值会缩放到同一特征中的其他值特定国家(在本例中为 CDR)
- 使用
SimpleImputer,这些值会高得多,而且逻辑上要低得多。
我知道插补永远不会完美,但在这种情况下肯定可以更准确
如果该国家/地区多年来有明显的趋势,我如何在将估算值保持在与特定国家/地区的特征相匹配的范围内反映这一点?
【问题讨论】:
标签: python pandas dataframe time