Python:如何找到两个值之间的相关性并消除噪声?

Python:如何找到两个值之间的相关性并消除噪声?,python,signal-processing,pearson-correlation,Python,Signal Processing,Pearson Correlation,我有两条曲线A和B,它们高度相关,如下图所示,其中C是A和B之间的皮尔逊相关性 可以下载包含数据的文件 绿色曲线的值应为0,但信号受B的影响。我想找出A和B之间的关系,以便A和B取消,但我不确定如何继续 显然,A和B彼此预测得很好。我们可以利用这一点来确保在给定的a和B值下获得约0的值。我选择的方法是fit 对于一些参数x和c,我们希望最小化A-x*B-c。这可以使用 import matplotlib.pyplot as plt import pandas as pd import scipy

我有两条曲线
A
B
,它们高度相关,如下图所示,其中
C
A
B
之间的皮尔逊相关性

可以下载包含数据的文件

绿色曲线的值应为
0
,但信号受
B
的影响。我想找出
A
B
之间的关系,以便
A
B
取消,但我不确定如何继续


显然,
A
B
彼此预测得很好。我们可以利用这一点来确保在给定的
a
B
值下获得约
0
的值。我选择的方法是fit

对于一些参数
x
c
,我们希望最小化
A-x*B-c
。这可以使用

import matplotlib.pyplot as plt
import pandas as pd
import scipy.optimize as opt


df = pd.read_csv('prova.csv')

def fit(x):
    return df['A'] - x[0] * df['B'] - x[1]


result = opt.least_squares(fit, [0, 0])

fit(result.x).plot()
plt.show()
这导致,


这是接近零的许多数量级。

你能提供一个完整的示例,包括一些数据吗?我可以在驱动器中共享数据。让我来。@N.Wouda做得很好!你还有其他推荐信吗?
import matplotlib.pyplot as plt
import pandas as pd
import scipy.optimize as opt


df = pd.read_csv('prova.csv')

def fit(x):
    return df['A'] - x[0] * df['B'] - x[1]


result = opt.least_squares(fit, [0, 0])

fit(result.x).plot()
plt.show()