使用包:
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.stattools import acf, pacf
执行手动和内置绘图实用程序,给出不同的值。不,我不是指图片比例,但手动绘图和使用内置工具绘制 PACF 的实际值似乎不同:
len_of_pacf = len(entire_mid)//4
# Using built-in
plot_acf(entire_mid, lags=len(entire_mid)-1)
plot_pacf(entire_mid, lags=len_of_pacf-1)
plt.show()
# Manual plotting
acf_result = acf(entire_mid, nlags=len(entire_mid))
pacf_result = pacf(entire_mid, nlags=len_of_pacf)
plt.plot(acf_result)
plt.plot(pacf_result)
plt.show()
返回:
ACF 本身工作正常,它返回相同的输出,但 PACF 则不然。我的意思是,PACF 的最小值低于 -1 的情况并不常见。
原来是因为计算方法不同。
method=ywm
# statsmodels.graphics.tsaplots.plot_pacf
def plot_pacf(
x,
ax=None,
lags=None,
alpha=0.05,
method="ywm",
use_vlines=True,
title="Partial Autocorrelation",
zero=True,
vlines_kwargs=None,
**kwargs,
):
"""
Plot the partial autocorrelation function
Parameters
----------
x : array_like
...
method=ywadjusted
# statsmodels.tsa.stattools.pacf
def pacf(
x: ArrayLike1D,
nlags: int | None = None,
method: Literal[
"yw",
"ywadjusted",
"ols",
"ols-inefficient",
"ols-adjusted",
"ywm",
"ywmle",
"ld",
"ldadjusted",
"ldb",
"ldbiased",
"burg",
] = "ywadjusted",
alpha: float | None = None,
) -> np.ndarray | tuple[np.ndarray, np.ndarray]:
"""
Partial autocorrelation estimate.
Parameters
----------
...