问题描述
我有很多温度数据,绘制时它会显示诸如门打开一段时间和压缩机每隔几分钟重复循环等事件。我想计算压缩机开/关状态的方法,这些状态不受门打开时的歪斜影响。在下图中,压缩机关闭平均值约为 40.0,压缩机开启平均值约为 38.5(忽略作为异常值的大尖峰)
我怀疑我需要多种方法来处理数据以获得“高均值”和“低均值”(我的虚构术语)的两个结果。也许是一个 iqr 来查找和丢弃异常值,以及某种窗口来查找和分组局部上峰和下峰并将其分组以求平均值。
我正在使用 Python 进行编码,因此我可以使用任何 Python 库或尝试推出自己的库。
任何想法如何做到这一点?
解决方法
如果我理解正确,您对开门时生成的数据不感兴趣,对吗?如果是这样,那么有很多可能的解决方案。
删除异常值
通过删除异常值,您仍然可以使用常规平均值。
使用中位数代替均值
如果您不想删除这些值,您可以切换到计算中位数,这通常不受异常值的影响。
使用滚动方式
滚动均值通常不会像您在图表中显示的那样受数据变化的影响很大。您还可以更改滚动平均值的时间范围。(Pandas - Rolling Mean)
应用标准化
归一化可缩小数据的变化,但归一化技术有很多,因此您需要找到最适合您的情况的技术。 (sklearn - normalization)
希望对你有帮助