我可以删除信号中与另一个信号相关的部分吗?
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 告诉您数据点围绕一条直线聚集的紧密程度,而线性系数告诉您最佳拟合线的斜率是多少。
抱歉,如果这是一个菜鸟问题。我搜索并看到了关于去除噪声信号的类似问题,但我不明白答案,我不确定它是否适用于我的问题。我只有一点正式的信号处理经验。
在这种情况下,我有一个时间序列,它是我一年中每天的燃气使用量(以热量为单位)。我拥有的其他时间序列是我所在位置的最高和最低观测温度(以度为单位)。
似乎存在明显的相关性,即随着温度下降,天然气使用量增加。
我有燃气炉和燃气热水器。我想做的是在 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 告诉您数据点围绕一条直线聚集的紧密程度,而线性系数告诉您最佳拟合线的斜率是多少。