[英]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.