首页 > 解决方案 > 动态因子模型:预测因子

问题描述

statsmodels包提供了一个DynamicFactor对象,当它适合时,会产生一个statsmodels.tsa.statespace.dynamic_factor.DynamicFactorResultsWrapper对象。提供predictsimulate方法,但都预测原始时间序列,而不是潜在的潜在因素。

我尝试将潜在因素重建为 AR 过程,但没有成功。.ssm["transition"]和结果中的系数.summary()匹配,但是当模拟为 AR 过程时,不要给我返回结果的因素.factors["filtered"]......

如何生成潜在因素的未来值?

标签: statsmodels

解决方案


一种方法是:

m = sm.tsa.DynamicFactor(endog, k_factors=1, factor_order=1)
r = m.fit()
f = r.get_forecast(10)
print(f.prediction_results.filtered_state)

请注意,这始终是一个 numpy 数组,因此如果您的数据有例如 Pandas 日期索引,您需要自己创建带有该索引的 Pandas 系列。

另一种方法是将np.nan值附加到数据集的末尾,然后使用典型的.factors["filtered"]访问器。如果您使用 附加n观测值np.nan,则 的最后一个n.factors["filtered"]将包含因子的预测。


推荐阅读