statsmodels.tsa.statespace.kalman_filter.KalmanFilter.set_stability_method

KalmanFilter.set_stability_method(stability_method=None, **kwargs)[source]

设置数值稳定性方法

卡尔曼滤波器是一种递归算法,在某些情况下可能会遇到数值稳定性问题。稳定性方法控制采取哪些措施(如果有的话)来促进稳定性。

Parameters:
stability_methodint, optional

设置稳定性方法的位掩码值。详见注释。

**kwargs

关键字参数可用于通过设置单个布尔标志来影响稳定性方法。详情请参阅注释。

注释

稳定性方法由一组布尔标志定义,并在内部存储为位掩码。可用的方法有:

STABILITY_FORCE_SYMMETRY = 0x01

如果设置了此标志,则在滤波器的每次迭代中都会强制执行预测状态协方差矩阵的对称性,其中每个元素设置为上三角和下三角中相应元素的平均值。

如果通过stability_method参数直接设置位掩码,则必须提供完整的方法。

如果使用关键字参数来设置单个布尔标志,那么必须使用方法的小写形式作为参数名称,并且值是布尔标志所需的值(True 或 False)。

请注意,稳定性方法也可以通过直接修改类属性来指定,这些属性定义方式与关键字参数类似。

默认的稳定性方法是 STABILITY_FORCE_SYMMETRY

示例

>>> mod = sm.tsa.statespace.SARIMAX(range(10))
>>> mod.ssm.stability_method
1
>>> mod.ssm.stability_force_symmetry
True
>>> mod.ssm.stability_force_symmetry = False
>>> mod.ssm.stability_method
0

Last update: Oct 16, 2024