Как убрать грубые ошибки из временных рядов? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть длинный временной ряд 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

Из-за объема данных я хочу автоматизировать процесс очистки данных. В настоящее время я удаляю ложные данные вручную с помощью инструментов tidyverse R.

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

Кто-нибудь может дать предложения по автоматизации задачи?

1 Ответ

0 голосов
/ 26 марта 2019

Вы можете автоматизировать задачу, если можете сформулировать / выразить критерии для «ложных» данных. Или вы можете автоматизировать часть этого: например, выберите вручную, выберите / выберите время, которое вы считаете данными ложными, поместите их в вектор / список и настройте процесс автоматического удаления этих точек данных из данных (на основе созданного вручную списка).

...