您可以在分析时间序列数据集之前删除缺失值吗?

机器算法验证 机器学习 时间序列 分布 统计学意义 缺失数据
2022-04-08 21:57:40

问题是:我可以在数据分析之前删除某个id的所有行,因为它缺少数据吗?更具体地说,我将给出上下文和具体问题:

语境

我有一个从 1960 年到 2018 年的每日时间序列数据框,其中每次观察都是对与 133 条河流(id 是河流)相关的降水、温度和水位的测量。因此,对于每条河流,我将在 1960 年到 2018 年之间的特定日期、特定年份获得所需的所有测量值。我需要预测河流水位。

我做了这个缺失值图以获得一些见解(百分比越低,那一年该流量的数据越低):

在此处输入图像描述

输入

为了删除或不删除缺失值(以及何时),该图中有三个与我有关的见解:

  1. 自 1960 年以来,每年都有越来越多的不同河流。
  2. 2018年有很多缺失数据(这是因为所有数据都停在当年的3月份)。
  3. 您有一些过去 35 年没有数据的河流(例如,图中的 83 到 87 条河流)。并且您有一些河流没有过去 10、5 或 2 年的数据(您可以在图中看到很多河流缺少 2017 年和 2018 年的数据)。

问题

我是否应该考虑所有河流数据进行预测,即使是那些没有过去 X 年数据的河流?因为没有过去 X 年的数据来预测明年是没有意义的(但我确实有 1980 年到 2000 年的数据)。如果我应该考虑它,我应该使用什么样的方法来预测,如果有的话?如果我不应该考虑它,我应该删除它吗?如果我应该删除它,我应该什么时候删除它?在数据分析之前还是之后进行预测?例如,在分析分布之前还是之后?(为了对河流进行分组以估算缺失值,因为它们具有不同的分布,但我可以找到一种对相似分布进行分组的方法)。在分析之前删除它们对我来说是有意义的,因为预测的噪音会更低,因为分析的数据将与预测的数据一致。

但是,如果我根本不删除它们,如果我想看一些整体分析,我会有更多的数据(即从 1960 年到 2018 年的趋势将是一个更具“代表性的趋势”)。之后删除,就预测(以及特征选择的洞察力)而言,它会增加噪音,因为用于分析的数据将不同于用于预测的数据(因为我将删除一些河流的完整数据)。

此外,我正在考虑假设如果河流没有过去 3 年的数据,那么测量河流的站就无法运行。但同样,如果该站无法运行,我是否应该考虑其数据以进行整体分析/洞察?

2个回答

一方面,您不应该删除任何内容。信息就是力量。另一方面,我对您为缺失的河流天数执行缺失数据插补的能力高度怀疑。目前尚不清楚不同河流之间的关系如何,只有当不同变量(河流)高度相关时,缺失数据插补才会增加价值。但是,您可以做的是为所有河流编写参数模型。在这个模型中

  • 不同的河流可以相互关联,
  • 例如,任何特定的河流都由具有独特参数的ARIMA过程来描述。

然后,您可以使用时间序列的完整信息最大似然 (FIML) 版本来估计模型。您需要在 FIML 上查找标准参考并仔细阅读。简而言之,FIML 做了以下工作。

  • 对数似然函数只有与非缺失值对应的项。
  • 所有非缺失值至少用于(对数似然)一项。
  • 假设,在时间序列中Xj, 值Xj(t)Xj(t+3)已标记但值Xj(t+1)Xj(t+2)缺失。那么对数似然函数包含项

...+log(fM,3(X(t+3)|X(t)))+...

在哪里fM,3(X(t+3)|X(t))是模型隐含的条件密度Xj(t+3)给定Xj(t). 您会看到我们正在跳过丢失的单元格Xj(t+1)Xj(t+2).

我会保留所有数据,但随后我会挖掘以确保没有模式误导我的数据(例如,所有新河流都较小,因为该州一直在增加监测站点,但已经有了主要河流覆盖)。

另一个需要注意的是,您可能需要使用前 X 天的降水量作为预测指标。在这种情况下,您需要在每次观测开始时删除前 X 天,或者能够确定来自其他来源的降水(例如,如果来自正在记录的当地气象站,即使河流监测器没有)。