You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Stats Models的Local Linear Trend模型处理缺失值

statsmodels Local Linear Trend 状态空间模型缺失值自动处理方案

自定义的Local Linear Trend类继承自sm.tsa.statespace.MLEModel时,默认未启用缺失值透传逻辑,而官方预实现的SARIMAX类已经内置了相关配置,因此可以直接由卡尔曼滤波模块处理缺失值。可通过以下配置实现缺失值自动处理:

  • 步骤1:实例化模型时显式指定缺失值处理参数
    实例化Local Linear Trend模型时传入missing='none'参数,告诉statsmodels不要提前删除、校验缺失值,直接将完整序列透传给卡尔曼滤波模块,由滤波逻辑原生处理缺失观测:
    # 原实例化代码
    # mod = LocalLinearTrend(endog)
    # 修改为以下代码
    mod = LocalLinearTrend(endog, missing='none')
    
  • 步骤2:拟合时增加适配参数(可选)
    若拟合时出现协方差计算异常,可在调用fit()方法时传入cov_type='robust',适配缺失值带来的样本量变化:
    res = mod.fit(cov_type='robust')
    
  • 步骤3:版本校验
    若配置后仍然全空,可将statsmodels升级到0.12.0及以上稳定版本,旧版本对自定义状态空间模型的缺失值支持存在已知缺陷。

可使用简易测试序列验证效果,构造包含随机缺失值的时序输入:

import numpy as np
endog = np.array([1.1, 2.3, np.nan, 4.7, 5.2, np.nan, 7.9, 8.4])
mod = LocalLinearTrend(endog, missing='none')
res = mod.fit()
# 输出滤波结果验证缺失位置是否有有效值
print(res.filtered_state)

正常输出中原来为NaN的观测位置会生成对应的状态估计值,不会出现全空的情况。

内容的提问来源于stack exchange,提问作者Andrew Doherty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:12:00