首页 > 解决方案 > 我可以删除与另一个信号相关的信号部分吗?

问题描述

对不起,如果这是一个愚蠢的问题。我已经搜索并看到了有关消除噪声信号的类似问题,但我不明白答案,我不确定它是否适用于我的问题。我只有一点点正式的信号处理经验。

在这种情况下,我有一个时间序列,即我一年内每天的天然气使用量。我拥有的另一个时间序列是我所在位置的最高和最低观测温度(以度为单位)。

温度超过温度

似乎存在明显的相关性,即随着温度的下降,天然气的使用量会上升。

我有煤气炉和煤气热水器。我想做的是找到每天的基线使用量,没有随温度波动的部分。我假设与温度相关的波动主要是炉子,剩下的是热水器。我知道热水器也会随着外部温度波动,但我假设它是这个分析的标称值。

我已经查看了 numpy 和 pandas 中的相关函数并做了这样的事情:

corr_coef = all_data_df['USAGE'].corr(all_data_df['TMIN'])
corr_coef

-0.86344...

然后

all_data_df['USAGE'] - corr_coef * all_data_df['TMIN']

DATE
2020-09-01    51.139755
2020-09-02    52.003199
2020-09-03    51.139755
2020-09-04    50.276311
2020-09-05    52.866643
                ...    
2021-08-27    52.866643
2021-08-28    54.396976
2021-08-29    50.943199
2021-08-30    50.266311
2021-08-31    51.129755

但是这些单位似乎在温度范围内比在温度范围内更多,这是我所希望的。在减去或关联之前,我是否需要将单位缩放为相似?

有没有更好的方法通过不同的分析来做到这一点?还是我可以将基线与温度相关的波动隔离开来是错的?

我更喜欢一个能指出原因的答案,而不仅仅是如果可以的话:)

谢谢

标签: pythonnumpysignal-processing

解决方案


这更像是一个数据问题而不是编程问题。您必须决定如何计算“温度贡献”。最简单的方法是对温度进行回归。由于您有最大值和最小值,您可能希望对这两种温度进行多线性回归。从回归中获得系数后,您可以使用它们来计算温度的线性贡献,并将其从使用量中减去。如果你想更漂亮,你可以看看线性模型以外的模型。

将自变量乘以相关系数不是正确的程序。做的是将 r 视为线性系数,但相关系数与线性系数有很大不同。前者是衡量因变量的变化有多少被自变量“解释”,而后者是“转换因子”,它给出了因变量对于自变量的单位变化而变化的程度。基本上,r 告诉您数据点围绕直线聚集的紧密程度,而线性系数告诉您最佳拟合线的斜率是多少。


推荐阅读