python - AR 样本外预测 Python Statsmodels

标签 python pandas forecasting statsmodels

我想使用来自训练模型的参数来预测使用 statsmodels 的测试模型的值。

我的代码:

import pandas as pd
import numpy as np
import statsmodels.api as sm

#Generate data
index = pd.date_range('2000-1-1', periods=200, freq='M')
df = pd.DataFrame({'data':np.random.random(200)}, index=index)
df_train = df[df.index < df.index[100]]
df_test = df

#Set up model
mod_train = sm.tsa.AR(df_train)
res_train = mod_train.fit(max_lag=20,trend='nc')
params_train = res_train.params
mod_test = sm.tsa.AR(df_test)

#Use parameters to predict test data
mod_test.predict(params_train,start = df.index[100],dynamic=False)

错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-309-a6eb40a5ff54> in <module>()
      9 params_train = res_train.params
     10 mod_test = sm.tsa.AR(df_test)
---> 11 mod_test.predict(params_train,start = df.index[100],dynamic=False)

C:\Anaconda\lib\site-packages\statsmodels\tsa\ar_model.pyc in predict(self, params, start, end, dynamic)
    198             raise ValueError("end is before start")
    199 
--> 200         k_ar = self.k_ar
    201         k_trend = self.k_trend
    202         method = self.method

AttributeError: 'AR' object has no attribute 'k_ar'

有人可以建议解决方法吗?我也对其他模块持开放态度。谢谢!

最佳答案

为什么不直接使用 res_train 对象进行预测? 请参阅下面对我有用的示例:

import pandas as pd
import numpy as np
import statsmodels.api as sm

#Generate data
index = pd.date_range("2000-1-1", periods=200, freq="M")
df = pd.DataFrame({"data": np.random.random(200)}, index=index)
df_train, df_test = df.iloc[:100], df.iloc[100:]

# Set up model
mod_train = sm.tsa.AR(df_train)
res_train = mod_train.fit(max_lag=20, trend="nc")
print("Lag: %d" % res_train.k_ar)
print("Coeffs: %s" % res_train.params)

res_train.predict(start=df_test.index[0], end=df_test.index[-1], dynamic=False)

关于python - AR 样本外预测 Python Statsmodels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27823897/

相关文章:

python - PySpark:连接两个 Spark 数据帧时如何将列分组为列表?

python - 计算由长度不等的二维索引列表给出的 DataFrame 行组的平均值

python - Pandas:在 MultiColumn 对象上创建 View

python - 列标题的 set_index 等效项

r - 在 R 中使用 ts 异常值进行异常值检测

r - 非季节性时间序列预测

Python-我如何使用 re 来匹配整个字符串

python - 学习Python : Is there a better way to write words + vars to file?

python - scikit 学习 tfidf 的实现不同于手动实现

r - 为什么 knitr 使用 auto.arima 显示警告?