Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用statsmodels和Python在AR模型中获取常量项?_Python_Time Series_Statsmodels - Fatal编程技术网

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

如何使用statsmodels和Python在AR模型中获取常量项?,python,time-series,statsmodels,Python,Time Series,Statsmodels,我正在尝试使用AR模型对我的时间序列数据建模 这是我正在使用的代码 # 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() 我已经成功地使用

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

这是我正在使用的代码

# 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
、参数
result.params
、ε项
result.sigma2
获得了p值。问题是我找不到一种方法来得到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
的结果确认了我的证据,即模型中添加了一些常量项。谢谢


常数是参数中的第零个元素。例如,参数[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就是这样做的)

另外,请注意,对于AR,这实际上是常数,而不是平均值。平均值由ARMA模型报告,该模型比普通AR模型更全面。(它有一个summary方法报告常量。AR也应该报告,但不报告。)

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

根据公式,我应该将ε添加到结果中(
fit.append(value+result.sigma2
)?没有,但您可以使用sigma2获得预测不确定性的估计值。有一个PR可以将其放入AR中,但目前它仅在ARMA/ARIMA中可用。我尝试过使用ARMA,但仍然存在一些问题。您能帮我看看这个问题吗?
constant = mean(1 - arparams.sum())