我可以删除信号中与另一个信号相关的部分吗?

Can I remove the part of a signal that correlates with another signal?

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

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

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

我有燃气炉和燃气热水器。我想做的是在 therms 中找到每天的基准使用量,不包括随温度波动的部分。我假设与温度相关的波动主要是炉子,剩下的是热水器。我知道热水器也会随着外部温度波动,但我假设它对于这个分析来说是名义上的。

我研究了 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

但是这些单位似乎在温度范围内而不是在热量范围内,这正是我所希望的。在减法或相关之前,我是否需要将单位缩放为相似?

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

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

谢谢

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

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