python - 根据 acf 和 pacf 图确定 p、q 值,并根据图确定 SARIMA 的参数

标签 python arima

我需要知道如何根据 acf 和 pacf 图计算/确定 ARIMA 模型的 p 和 q 值。请帮忙

enter image description here

最佳答案

ACF(自相关因子)
它是当前时间点的观测值与前一时间点的观测值之间的相关性。
PACF(部分自相关因子)
假设我们认为两个时间点的观测值都与其他时间点的观测值相关,则两个时间点的观测值之间的相关性。例如,今天的股价可以与前天相关,昨天也可以与前天相关。那么昨天的PACF就是去掉前天影响后今天和昨天的真实相关性。
确定 ACF 和 PACF 的程序
· 去趋势数据
我们需要执行的最重要的步骤是确定数据中是否存在趋势,如果是,我们需要去除数据以进行平滑计算。我们在文章的第 2 部分讨论了从数据中消除趋势的各种方法。通常,这里使用一滞后差分。
· 识别重要术语
使用 PACF 确定 AR 模型中使用的重要术语。项的数量决定了模型的顺序。
例如,如果昨天股价的 PACF 显着,而所有其他天的所有 PACF 都不显着。那么昨天的股价就会被用来预测今天的股价。这种类型的 AR 模型称为一阶 AR 模型。它表示为 AR (1)。
类似的过程可用于识别 MA 模型的重要项。我们将使用 ACF 来确定 MA 模型中使用的重要术语。
· 选择要使用的模型
我们应该首先分别使用 PACF 和 ACF 计算 AR 和 MA 的重要项。然后下一步是确定哪个更简单的术语可以很好地用于实现。
enter image description here
根据上图,
· ACF 中的重要项数 = 6
· PACF 中的重要项数 = 8
显然我们将在这个模型中使用 MA,因为 ACF < PACF。
ACF = 6 表示如果我们使用 MA 模型,我们应该使用 6 个先前时间点的观测值,这意味着 MA (6)。
PACF = 8 表示如果我们使用 AR 模型,我们应该使用之前 8 个时间点的观测值,这意味着 AR (8)。
选择 AR 和 MA 的最小阶是为了降低模型的复杂性。如果 PACF 的阶数小于 ACF,我们会选择 AR 而不是 MA。
ARIMA 算法
ARIMA 代表自回归综合移动平均线。它只不过是 AR 和 MA 的集成,以产生更复杂和准确的模型。在 ARIMA 中,“I”代表集成。它表示用于处理非平稳数据的差分。
对于上图,
如果我们采用 1 级差分对数据进行去趋势,则积分因子将为 1。那么我们可以将结合 AR 和 MA 的模型表示为 ARIMA (8, 1, 6)。
如果我们采用 2 级差分对数据进行去趋势,则集成因子将为 2。那么我们可以将结合 AR 和 MA 的模型表示为 ARIMA (8, 2, 6)。
在数学上,它表示为 ARIMA(p,d,q)
这里,
p = PACF 中趋势的重要项数
d = 趋势的差分顺序
q= ACF 中趋势的重要项数
你可以在这里引用我的文章了解更多细节 - URL

关于python - 根据 acf 和 pacf 图确定 p、q 值,并根据图确定 SARIMA 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349032/

相关文章:

Python:如何访问字典字典中的元组值

python : "Pandas data cast to numpy dtype of object. Check input data with np.asarray(data)."

python - 使用 ARIMA 进行预测

r - ARIMA 预测不断收到错误 'data' 必须是向量类型,为 'NULL'

python-3.x - 如何在使用 statsmodels 时修复此错误“ImportError : cannot import name 'factorial' "?

python - 当我考虑到索引范围时,总是有这个错误 'IndexError: string index out of range'

java - 使用 Python 正则表达式解析 Java Arrays.deepToString 输出的浮点字符串

java - 导致 Shuffle 的 Spark 转换是什么?

python - 如何判断 django admin 中是否添加或更改了屏幕

r - R 中 Arima.sim() 模型的输入值是多少?