【发布时间】:2020-02-24 10:01:30
【问题描述】:
我想用 bfill 替换这些异常值,基于 120 天的滚动平均值,而不是删除这些异常值。
我的问题是我不能使用平均平均值,因为该值会随着时间的推移而不断增加,例如 2013 年的异常值是 2018 年的正常读数。
我见过像 this 这样的解决方案,但它们没有提供有关如何替换这些异常值的指南(我不想完全删除它们)
【问题讨论】:
-
可以分享这些数据吗?
-
您可以做的是首先确定要使用的时间窗口,然后计算该间隔窗口中值的分布,然后获得该窗口平均值的 95% 置信区间,一旦你得到了上限和下限,你就可以很确定你的异常值超出了你刚刚计算的置信区间:) 听起来怎么样?获取时间窗口的间隔并不难,因为您知道平均值大致分布为具有均值 E(X) 和方差 Var(X)/n 的正态变量,这应该可以解决问题。
-
@PankajJoshi 数据保密,抱歉。
标签: python pandas outliers rolling-computation