2.4.2 改变数据集时间频率

通常我们会发现来自不同数据源的时间轴常常无法一一对应,此时就要用到改变时间频率的方法进行数据清洗。由于无法改变实际测量数据的频率,我们能做的是改变数据收集的频率,也就是本节提到的上采样(upsamping)和下采样(downsampling)。

下采样

下采样指的是减少数据收集的频率,也就是从原始数据中抽取子集的方式。

以下是一些下采样会用到的场景:

  • 数据原始的分辨率不合理:例如有一个记录室外温度的数据,时间频率是每秒钟一次。我们都知道,气温不会在秒钟这个级别有明显的变化,而且秒级的气温数据的测量误差甚至会比数据本身的波动还要大,因此这个数据集有着大量的冗余。在这个案例中,每隔n个元素取一次数据可能更合理一些。

  • 关注某个特定季节的信息:如果担心某些数据存在季节性的波动,我们可以只选择某一个季节(或月份)进行分析,例如只选择每年一月份的数据进行分析。

  • 进行数据匹配:例如你有两个时间序列数据集,一个更低频(年度数据),一个更高频(月度数据),为了将两个数据集匹配进行下一步的分析,可以对高频数据进行合并操作,如计算年度均值或中位数,从而获得相同时间轴的数据集。

上采样

上采样在某种程度上是凭空获得更高频率数据的方式,我们要记住的是使用上采样,只是让我们获得了更多的数据标签,而没有增加额外的信息。

以下是一些上采样会用到的场景:

  • 不规律的时间序列:用于处理多表关联中存在不规则时间轴的问题。

    例如现在有两个数据,一个记录了捐赠的时间和数量

    amt

    dt

    99

    2019-2-27

    100

    2019-3-2

    5

    2019-6-13

    15

    2019-8-1

    11

    2019-8-31

    1200

    2019-9-15

    另一个数据记录了公共活动的时间和代号

    identifier

    dt

    q4q42

    2019-1-1

    4299hj

    2019-4-1

    bbg2

    2019-7-1

    这时我们需要合并这两个表的数据,为每次捐赠打上标签,记录每次捐赠之前最近发生的一次公共活动,这种操作叫做rolling join,关联后的数据结果如下。

    identifier

    dt

    amt

    q4q42

    99

    2019-2-27

    q4q42

    100

    2019-3-2

    4299hj

    5

    2019-6-13

    bbg2

    15

    2019-8-1

    bbg2

    11

    2019-8-31

    bbg2

    1200

    2019-9-15

  • 进行数据匹配:类似下采样的场景,例如我们有一个月度的失业率数据,为了和其他数据匹配需要转换成日度的数据,如果我们假定新工作一般都是从每个月第一天开始的,那么可以推演认为这个月每天的失业率都等于该月的失业率。

通过以上的案例我们发现,即使是在十分干净的数据集中,由于需要比较来自不同维度的具有不同尺度的数据,也经常需要使用到上采样和下采样的方法。

Last updated