在 Python 中将自相关计算为滞后函数

s5s*_*s5s 5 python statistics signal-processing pandas statsmodels

在 python (+ pandas/numpy/scipy/statsmodels) 中,是否有一个函数可以返回滞后的自相关性?有没有像这样的库函数现成的?

为了避免混淆,我想要以下内容,只是我不想绘制它,但我希望它作为系列返回(pd.Series 或 pd.DataFrame):

import numpy as np
import pandas as pd
from statsmodels.graphics.tsaplots import plot_acf
from matplotlib import pyplot as plt
plt.ion()
s = pd.Series(np.sin(range(1,100))) + pd.Series(np.random.randn(99))
plot_acf(s)
Run Code Online (Sandbox Code Playgroud)

实际上,我想要pd.Series.autocorr()返回什么,但我想要返回一个序列而不是标量,其中该序列包含各种滞后的自相关。

编辑:

实现上述目标的一种方法是:

pd.Series([s.autocorr(i) for i in range(0,s.shape[0]-1)], index=range(0,s.shape[0]-1))
Run Code Online (Sandbox Code Playgroud)

cfu*_*ton 5

Statsmodelsacf功能怎么样?

import statsmodels.api as sm

np.random.seed(1234)
s = pd.Series(np.sin(range(1,100))) + pd.Series(np.random.randn(99))
pd.Series(sm.tsa.acf(s, nlags=5))
Run Code Online (Sandbox Code Playgroud)

产量

0    1.000000
1    0.033136
2   -0.124275
3   -0.396403
4   -0.248519
5    0.078170
dtype: float64
Run Code Online (Sandbox Code Playgroud)