PACF 内置绘图工具返回与手动绘图不同的结果

问题描述 投票:0回答:1

使用包:

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

返回:

enter image description here enter image description here enter image description here

ACF 本身工作正常,它返回相同的输出,但 PACF 则不然。我的意思是,PACF 的最小值低于 -1 的情况并不常见。

python statistics statsmodels autocorrelation
1个回答
0
投票

原来是因为计算方法不同。

内置用途
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
    ----------
...
© www.soinside.com 2019 - 2024. All rights reserved.