使用统计模型本地线性趋势模型处理缺失值

Posted

技术标签:

【中文标题】使用统计模型本地线性趋势模型处理缺失值【英文标题】:Handle missing values with Stats Models Local Linear Trend model 【发布时间】:2021-09-03 09:27:59 【问题描述】:

我正在使用 statsmodels 来拟合局部线性趋势状态空间模型,该模型使用文档中示例中的代码从 sm.tsa.statespace.MLEModel 类继承:

https://www.statsmodels.org/dev/examples/notebooks/generated/statespace_local_linear_trend.html

状态空间模型和卡尔曼滤波器应该自然地处理缺失值,但是当我添加一些空值时,状态空间模型会输出空值。在文档中的另一个示例中,实现 SARIMAX 似乎丢失的数据似乎是自动处理的:

https://www.statsmodels.org/dev/examples/notebooks/generated/statespace_sarimax_internet.html

有没有办法以与局部线性趋势模型相同的方式处理缺失值?

【问题讨论】:

【参考方案1】:

Chad Fulton 回复了我在 github 上提出的问题:

https://github.com/statsmodels/statsmodels/issues/7684

状态空间模型确实可以处理 endog 变量中的 NaN 值。我认为问题在于,在此示例代码中,起始参数计算为:

@property
def start_params(self):
    return [np.std(self.endog)]*3

要处理数据中的 NaN 值,您需要将其替换为:

@property
def start_params(self):
    return [np.nanstd(self.endog)]*3

这行得通。

【讨论】:

以上是关于使用统计模型本地线性趋势模型处理缺失值的主要内容,如果未能解决你的问题,请参考以下文章

拓端tecdat|R语言编程指导用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值

统计学习六:1.对数线性模型之逻辑回归

R进阶:缺失值的处理、拟合关系

spss中广义线性模型解释率比较

线性模型总结

风控建模流程