statsmodels
软件包提供了一个DynamicFactor
对象,当适合时,它会产生一个statsmodels.tsa.statespace.dynamic_factor.DynamicFactorResultsWrapper
对象。这提供了predict
和simulate
方法,但是都预测了原始时间序列,而不是潜在的潜在因素。
我曾尝试将潜在因素重建为AR流程,但未成功。 .ssm["transition"]
和结果.summary()
中的系数都匹配,但是当作为AR过程进行模拟时,不要把结果.factors["filtered"]
上的系数还给我... >
如何生成潜在因子的未来值?
答案 0 :(得分:0)
一种方法是:
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数组,因此如果您的数据具有例如一个熊猫日期索引,您需要自己使用该索引创建熊猫系列。
另一种方法是将np.nan
值附加到数据集的末尾,然后使用典型的.factors["filtered"]
访问器。如果您将n
观测值附加到np.nan
,则n
的最后.factors["filtered"]
值将包含因素的预测。