簡體   English   中英

如何使用statsmodels和Python在AR模型中獲得常量項?

[英]How to get constant term in AR Model with statsmodels and Python?

我正在嘗試使用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 epsilon term成功獲得了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的結果證實我很明顯,模型中添加了一些常量項。 謝謝。

在此輸入圖像描述

常數是params中的第零個元素。 例如,params [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)

或者更簡單,因為我們已經為你制作了滯后矩陣(這就是擬合值所做的)

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

順便說一句,請注意,對於AR而言,這實際上是常量而不是均值。 平均值由ARMA模型報告,其比普通AR模型更全面。 (它有一個報告常量的摘要方法.AR也應該但不是。)連接是

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM