[英]AR out of sample forecast Python Statsmodels
I want to use parameters from a training model to predict values on a test model using statsmodels. 我想使用训练模型中的参数来使用statsmodel预测测试模型上的值。
My code: 我的代码:
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)
The Error: 错误:
---------------------------------------------------------------------------
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'
Can somebody please suggest a workaround? 有人可以建议一个解决方法吗? I'm open to other modules too. 我也对其他模块开放。 Thanks! 谢谢!
Why don't you just use res_train
object for prediction? 为什么不直接使用res_train
对象进行预测? See example below which works for me: 看下面的例子对我有用:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.