使用 Stats Models Local Linear Trend 模型处理缺失值

Handle missing values with Stats Models Local Linear Trend model

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

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

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

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

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

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

这有效。