我正在尝试计算几行中具有不同滞后的自相关。
我现在有了一个代码,可以计算一行的自相关:
import pandas as pd
import numpy as np
df = pd.read_excel("file.xlsx")
def autocorr(x, t):
return np.corrcoef(np.array([x[0:len(x)-t], x[t:len(x)]]))
df1 = df.copy(deep=True)
df1["output"] = autocorr(df.T[0], 1)[0, 1]
df1["output2"]= autocorr(df.T[0], 2)[0, 1]
df1["output3"]= autocorr(df.T[0], 3)[0, 1]
df1["output4"]= autocorr(df.T[0], 4)[0, 1]
df1["output5"]= autocorr(df.T[0], 5)[0, 1]
df1["output6"]= autocorr(df.T[0], 6)[0, 1]
df1["output7"]= autocorr(df.T[0], 7)[0, 1]
df1["output8"]= autocorr(df.T[0], 8)[0, 1]
df1["output9"]= autocorr(df.T[0], 9)[0, 1]
df1["output10"]= autocorr(df.T[0], 10)[0, 1]
df1["output11"]= autocorr(df.T[0], 11)[0, 1]
df1["output12"]= autocorr(df.T[0], 12)[0, 1]
df1
现在的输出是:
但是,正如您所看到的,他正在正确计算第一行的自相关,但是他正在将其复制到另一行。我想按行进行计算。
如何调整我的代码,使其成为输出?另外,在我的代码中,您看到我正在分别定义每列。也许是一个使它更高效并在一行中完成的想法。
期待一些反馈,
史蒂芬