statsmodels.tsa.statespace.kalman_filter.KalmanFilter.set_filter_method

KalmanFilter.set_filter_method(filter_method=None, **kwargs)[source]

设置过滤方法

过滤方法控制了将使用哪种卡尔曼滤波方法的各个方面。

Parameters:
filter_methodint, optional

设置过滤方法的位掩码值。详见注释。

**kwargs

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

注释

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

FILTER_CONVENTIONAL

传统的卡尔曼滤波器。

FILTER_UNIVARIATE

单变量方法用于卡尔曼滤波。如果两者都指定,则覆盖传统方法。

FILTER_COLLAPSED

卡尔曼滤波的压缩方法。将额外用于传统或单变量滤波。

FILTER_CONCENTRATED

使用集中对数似然函数。将与其他选项一起使用。

请注意,如果使用的是0.16之前的Scipy版本,则只有第一种方法可用。

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

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

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

默认的过滤方法是 FILTER_CONVENTIONAL。

示例

>>> mod = sm.tsa.statespace.SARIMAX(range(10))
>>> mod.ssm.filter_method
1
>>> mod.ssm.filter_conventional
True
>>> mod.ssm.filter_univariate = True
>>> mod.ssm.filter_method
17
>>> mod.ssm.set_filter_method(filter_univariate=False,
...                           filter_collapsed=True)
>>> mod.ssm.filter_method
33
>>> mod.ssm.set_filter_method(filter_method=1)
>>> mod.ssm.filter_conventional
True
>>> mod.ssm.filter_univariate
False
>>> mod.ssm.filter_collapsed
False
>>> mod.ssm.filter_univariate = True
>>> mod.ssm.filter_method
17

Last update: Oct 16, 2024