将保存的参数(Pandas系列)加载到Statsmodels状态空间模型中



我正在使用出色的python包statsmodels构建一个动态因子模型,我想提取一个估计的参数向量,以便稍后再次构建模型,并将这些参数加载到其中https://github.com/ChadFulton/tsa-notebooks/blob/master/dfm_coincident.ipynb.)

在下面的代码块中,使用mod.fit()(使用Powell算法(估计初始参数,然后将初始参数返回给mod.fit()以使用初始参数作为initial_res.params来完成估计(使用EM算法(。(后者是Pandas系列。(

mod = sm.tsa.DynamicFactor(endog, k_factors=1, factor_order=2, error_order=2)
initial_res = mod.fit(method='powell', disp=False)
res = mod.fit(initial_res.params)

我想pickleres.params(同样是一个小的Pandas系列和一个小磁盘占用空间(。然后,稍后再次从头开始构建模型,并将我保存的参数加载到其中,而无需重新估计模型。有人知道怎么做吗?

我看到的示例建议对结果对象res进行酸洗,但这可能是一个相当大的节省。从头开始构建它非常简单,但估计需要一段时间。从保存的最优参数开始的估计可能更快;不过,这还是相当业余的,对吧?

TIA,Drew

您可以在任何状态空间模型上使用smooth方法来根据特定参数构造结果对象。在您的示例中:

mod = sm.tsa.DynamicFactor(endog, k_factors=1, factor_order=2, error_order=2)
initial_res = mod.fit(method='powell', disp=False)
res = mod.fit(initial_res.params)
res.params.to_csv(...)
# ...later...
params = pd.read_csv(...)
res = mod.smooth(params)

最新更新