statsmodels.tsa.statespace.simulation_smoother.SimulationSmoother.set_conserve_memory

SimulationSmoother.set_conserve_memory(conserve_memory=None, **kwargs)

设置内存保护方法

默认情况下,卡尔曼滤波器在每次迭代中计算多个中间矩阵。内存保存选项控制哪些矩阵被存储。

Parameters:
conserve_memoryint, optional

设置内存保护方法的位掩码值。详情请参见注释。

**kwargs

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

注释

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

MEMORY_STORE_ALL

存储所有中间矩阵。这是默认值。

MEMORY_NO_FORECAST_MEAN

不要存储预测或预测误差。如果使用此选项,结果类中的predict方法将不可用。

MEMORY_NO_FORECAST_COV

不要存储预测误差协方差矩阵。

MEMORY_NO_FORECAST

不要存储预测、预测误差或预测误差协方差矩阵。如果使用此选项,结果类中的predict方法将不可用。

MEMORY_NO_PREDICTED_MEAN

不要存储预测的状态。

MEMORY_NO_PREDICTED_COV

不要存储预测的状态协方差矩阵。

MEMORY_NO_PREDICTED

不要存储预测状态或预测状态协方差矩阵。

MEMORY_NO_FILTERED_MEAN

不要存储过滤后的状态。

MEMORY_NO_FILTERED_COV

不要存储过滤后的状态协方差矩阵。

MEMORY_NO_FILTERED

不要存储过滤后的状态或过滤后的状态协方差矩阵。

MEMORY_NO_LIKELIHOOD

不要存储每个观测值的对数似然值向量。只存储对数似然值的总和。

MEMORY_NO_GAIN

不要存储卡尔曼增益矩阵。

MEMORY_NO_SMOOTHING

不要存储与卡尔曼平滑相关的临时变量。如果使用此选项,平滑功能将不可用。

MEMORY_NO_STD_FORECAST

不要存储标准化预测误差。

MEMORY_CONSERVE

不要存储任何中间矩阵。

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

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

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

默认的内存节省方法是 MEMORY_STORE_ALL,因此所有中间矩阵都会被存储。

示例

>>> mod = sm.tsa.statespace.SARIMAX(range(10))
>>> mod.ssm..conserve_memory
0
>>> mod.ssm.memory_no_predicted
False
>>> mod.ssm.memory_no_predicted = True
>>> mod.ssm.conserve_memory
2
>>> mod.ssm.set_conserve_memory(memory_no_filtered=True,
...                             memory_no_forecast=True)
>>> mod.ssm.conserve_memory
7

Last update: Oct 16, 2024