首页 > 解决方案 > 如何从时间序列中消除严重错误?

问题描述

我有来自井的 5 分钟水位数据的长时间序列。该系列包含在时间序列图中很容易查看的测量误差。

水位时间序列图

head(data)
# A tibble: 229,120 x 4
   date                 temp P_comp_m alt_m
   <dttm>              <dbl>    <dbl> <dbl>
 1 2016-06-10 11:50:00  21.8     1.09 1008.
 2 2016-06-10 11:55:00  21.2     1.07 1008.
 3 2016-06-10 12:00:00  21.1     1.06 1008.
 4 2016-06-10 12:05:00  21.1     1.05 1008.
 5 2016-06-10 12:10:00  21.9     1.05 1008.
 6 2016-06-10 12:15:00  21.8     1.04 1008.
 7 2016-06-10 12:20:00  21.7     1.03 1008.
 8 2016-06-10 12:25:00  21.6     1.03 1008.
 9 2016-06-10 12:30:00  21.5     1.02 1008.
10 2016-06-10 12:35:00  21.5     1.01 1008.
# ... with 229,110 more rows

由于数据量大,我希望自动化数据清理过程。目前,我正在使用 R tidyverse 工具手动删除虚假数据。

data[between(data$date, 
                 as_datetime("2016-11-27 17:00:00"),
                 as_datetime("2016-11-29 01:50:00")),] <- data %>% 
  filter(between(date, as_datetime("2016-11-27 17:00:00"),
                 as_datetime("2016-11-29 01:50:00"))) %>% 
  mutate(temp = NA,                                        # temperature column 
         P_comp_m = NA,                                    # pressure
         alt_m = NA)                                       # altitude

任何人都可以提供自动化任务的建议吗?

标签: time-seriesdata-cleaning

解决方案


如果您可以阐明/表达“虚假”数据的标准,您可以自动执行任务。或者您可以自动化其中的一部分:例如,选择手动选择/选择您认为数据是虚假的时间,将它们放入向量/列表中并设置一个过程以自动从数据中删除这些数据点(基于手动创建的列表)。


推荐阅读