SquareRootFilter#
- class pymc_extras.statespace.filters.SquareRootFilter(mode=None)[源代码]#
带有 Cholesky 分解的卡尔曼滤波器
使用 Cholesky 分解加上 pt.solve_triangular 的卡尔曼滤波器实现,以(尝试)加速观测协方差矩阵 F 的求逆。
- __init__(mode=None)#
卡尔曼滤波器。
- 参数:
mode (str, 可选) – 用于 Pytensor 编译的模式。默认为 None。
注释
BaseFilter 类是用于实现卡尔曼滤波器的抽象基类 (ABC)。它定义了卡尔曼滤波器实现常用的属性和方法。
- mode#
用于 Pytensor 编译的模式。
- 类型:
str 或 None
- seq_names#
表示时变状态空间矩阵的名称列表。 也就是说,需要提供给 pytensor.scan 的 sequences 参数的输入
- 类型:
list[str]
- non_seq_names#
表示静态状态空间矩阵的名称列表。 也就是说,需要提供给 pytensor.scan 的 non_sequences 参数的输入
- 类型:
list[str]
方法
__init__
([mode])卡尔曼滤波器。
add_check_on_time_varying_shapes
(data, ...)插入一个检查,以确保时变矩阵与数据形状匹配到计算图中。
build_graph
(data, a0, P0, c, d, T, Z, R, H, Q)构建卡尔曼滤波器的计算图。
check_params
(data, a0, P0, c, d, T, Z, R, H, Q)应用任何关于输入有效性的检查。
handle_missing_values
(y, Z, H)处理观测数据 y 中的缺失值
kalman_step
(*args)执行卡尔曼滤波器的单次迭代,它由两个步骤组成:更新步骤和预测步骤。
predict
(a, P, c, T, R, Q)计算隐藏状态的单步预测,这些预测以直到但不包括当前时间步的信息 a_hat 为条件,以及预测协方差矩阵 P_hat。
unpack_args
(args)内部扫描函数的输入顺序是未知的,因为某些、全部或没有输入矩阵可能是时变的。
update
(a, P, y, d, Z, H, all_nan_flag)计算以观测数据为条件的隐藏状态分布的后验估计,直到并包括当前时间步。