AR样本外预测Python Statsmodels

2024-04-26 13:50:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用训练模型中的参数来使用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)

错误:

^{pr2}$

有人能建议一个解决办法吗?我也对其他模块开放。谢谢!在


Tags: 模型testimportmoddfdataindexas
1条回答
网友
1楼 · 发布于 2024-04-26 13:50:35

为什么不直接使用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)

相关问题 更多 >