statsmodels.tsa.statespace.kalman_smoother.KalmanSmoother.set_smooth_method¶
-
KalmanSmoother.set_smooth_method(smooth_method=
None, **kwargs)[source]¶ 设置平滑方法
平滑方法可以用来覆盖所使用的卡尔曼平滑器方法。默认情况下,所使用的卡尔曼平滑器取决于卡尔曼滤波器方法。
- Parameters:¶
- smooth_method
int,optional 设置过滤方法的位掩码值。详见注释。
- **kwargs
关键字参数可用于通过设置单独的布尔标志来影响过滤方法。详情请参阅注释。
- smooth_method
注释
平滑方法由一组布尔标志定义,并在内部存储为位掩码。可用的方法有:
- SMOOTH_CONVENTIONAL = 0x01
默认的卡尔曼平滑器,如Durbin和Koopman在2012年第四章中所述。
- SMOOTH_CLASSICAL = 0x02
经典的卡尔曼平滑器,如 Anderson 和 Moore 在 1979 年或 Durbin 和 Koopman 在 2012 年第四章 4.6.1 节中所述。
- SMOOTH_ALTERNATIVE = 0x04
改进的Bryson-Frazier卡尔曼平滑方法;这与Durbin和Koopman在2012年的传统方法相同,只是增加了一个额外的中间步骤。
- SMOOTH_UNIVARIATE = 0x08
单变量卡尔曼平滑器,如Durbin和Koopman在2012年第六章中所述,除了采用修改后的Bryson-Frazier时间。
实际上,这些方法应该都会产生相同的输出,但具有不同的计算影响、数值稳定性影响或内部时间假设。
请注意,如果使用的是0.16之前的Scipy版本,则只有第一种方法可用。
如果通过smooth_method参数直接设置位掩码,则必须提供完整的方法。
如果使用关键字参数来设置单个布尔标志,那么必须使用方法的小写形式作为参数名称,并且值是布尔标志所需的值(True 或 False)。
请注意,过滤方法也可以通过直接修改类属性来指定,这些属性定义方式类似于关键字参数。
默认的过滤方法是SMOOTH_CONVENTIONAL。
示例
>>> mod = sm.tsa.statespace.SARIMAX(range(10)) >>> mod.smooth_method 1 >>> mod.filter_conventional True >>> mod.filter_univariate = True >>> mod.smooth_method 17 >>> mod.set_smooth_method(filter_univariate=False, filter_collapsed=True) >>> mod.smooth_method 33 >>> mod.set_smooth_method(smooth_method=1) >>> mod.filter_conventional True >>> mod.filter_univariate False >>> mod.filter_collapsed False >>> mod.filter_univariate = True >>> mod.smooth_method 17
Last update:
Oct 16, 2024