numpy を使用して、統計力学で定義されている自己相関関数を計算しようとしています。私が見つけたドキュメントのほとんどは、correlateやconvolveなどの関数に関連しています。ただし、特定の確率変数 x について、これらの関数は合計を計算しているように見えます
ACF(dt) = sum_{t=0}^T [(x(t)*x(t+dt)]
平均の代わりに
ACF(dt) = mean[x(t)*x(t+dt)]
実際、自己相関関数を計算するには、次のようにする必要があります。
acf = np.correlate(x,x,mode='full')
acf_half = acf[acf.size / 2:]
ldata = len(acf)
acf = np.array([x/(ldata-i) for i,x in enumerate(acf_half)])
もちろん、正しい acf から mean(x)**2 を引く必要があります。
これが正しいことを誰でも確認できますか?