statsmodels.tsa.statespace.simulation_smoother.SimulationSmoother.set_conserve_memory¶
-
SimulationSmoother.set_conserve_memory(conserve_memory=
None, **kwargs)¶ 设置内存保护方法
默认情况下,卡尔曼滤波器在每次迭代中计算多个中间矩阵。内存保存选项控制哪些矩阵被存储。
- Parameters:¶
- conserve_memory
int,optional 设置内存保护方法的位掩码值。详情请参见注释。
- **kwargs
关键字参数可用于通过设置单个布尔标志来影响内存保护方法。详情请参阅注释。
- conserve_memory
注释
内存保护方法由一组布尔标志定义,并在内部存储为位掩码。可用的方法有:
- 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