gpt4 book ai didi

python - 如何使用 statsmodels 和 Python 在 AR 模型中获取常数项?

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:28 25 4
gpt4 key购买 nike

我正在尝试使用 AR 模型为我的时间序列数据建模。

enter image description here

这是我正在使用的代码。

# Compute AR-model (data is a python list of number)

model = AR(data)
result = model.fit()

plt.plot(data, 'b-', label='data')
plt.plot(range(result.k_ar, len(data)), result.fittedvalues, 'r-')
plt.show()

我已经使用 result.k_ar 成功获取了 p 值,参数为 result.params,epsilon 项为 result.sigma2。问题是我找不到获取 c(常数)项的方法。这是我编写的用于比较结果的代码。

# Plot

fit = []
for t in range(result.k_ar, len(data)):
value = 0
for i in range(1, result.k_ar+1):
value += result.params[i-1] * data[t - i]
fit.append(value)

plt.plot(data, 'b-', label='data')
plt.plot(range(result.k_ar, len(data)), fit, 'r-', label='fit')
plt.plot(range(result.k_ar, len(data)), result.fittedvalues, 'r-')
plt.show()

我的结果和 result.fittedvalues 的结果证实了我的证据,即模型中添加了一些常数项。谢谢。

enter image description here

最佳答案

常数是参数中的第零个元素。例如,参数[0]。

你的代码应该是

fit = []
for t in range(result.k_ar, len(data)):
value = result.params[0]
for i in range(2, result.k_ar + 2):
value += result.params[i - 1] * data[t - i + 1]
fit.append(value)

或者更简单,因为我们已经为您制作了滞后矩阵(这就是 fittedvalues 所做的)

np.dot(result.model.X, result.params)

顺便说一句,请注意,对于 AR,这实际上是常量而不是平均值。平均值由 ARMA 模型报告,该模型比普通 AR 模型功能更全面。 (它有一个报告常量的汇总方法。AR 也应该有但没有。)连接是

constant = mean(1 - arparams.sum())

关于python - 如何使用 statsmodels 和 Python 在 AR 模型中获取常数项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24172454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com