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()