Я хочу разделить данные на два набора данных: набор обучающих данных и набор тестовых данных. (Анализ временных рядов в R) - PullRequest
0 голосов
/ 28 марта 2020

Я хочу разделить данные на два набора данных: набор обучающих данных и набор тестовых данных. Цель будет состоять в том, чтобы использовать набор учебных данных для прогнозирования значения концентрации NOx ежедневно в январе 2005 года. Следовательно, набор учебных данных должен включать в себя первые 296 наблюдений (до последнего наблюдения 2004 года). Набор тестовых данных должен включать в себя 31 ежедневное наблюдение за январь 2005 г.

Набор данных содержит 390 экземпляров ежедневных откликов от набора из нескольких металлооксидных химических датчиков, встроенных в мультисенсорное устройство для определения качества воздуха. Устройство было установлено на поле в сильно загрязненной зоне, на уровне дороги, в итальянском городе. Данные были записаны с марта 2004 года по апрель 2005 года (один год). Предоставляются среднесуточные концентрации Ground Truth для общих оксидов азота (NOx) и диоксида азота (NO2), а также информация о погодных условиях. Недостающие значения помечены значением -200.

Набор данных с 391 наблюдением, почти один год с 11/03/2004 по 04/04/2005

1 Ответ

2 голосов
/ 28 марта 2020

Вот что я предлагаю, я включил воспроизводимый пример вашего набора данных (со случайными значениями для ваших переменных):

set.seed(123)
library(data.table)
N = length(seq(from = 
                 as.Date("2004/03/11"),
               to = as.Date("2005/04/04"),
               by = "days"))
df <- data.table("Date" = seq(from = 
                               as.Date("2004/03/11"),
                             to = as.Date("2005/04/04"),
                             by = "days"),
                "NOx" = rnorm(N),
                "NO2" = rnorm(N),
                "Temp" = rnorm(N),
                'RH' = rnorm(N),
                'AH' = rnorm(N))

head(df)

Вот как выглядит набор данных:

 Date        NOx         NO2       Temp
1: 2004-03-11 -0.1639410  1.48433728 -0.7166330
2: 2004-03-12  0.8985008  1.12176857  0.2304389
3: 2004-03-13  0.6891673 -1.39986065 -0.3868637
4: 2004-03-14 -0.8190232 -1.47609804  0.5087085
5: 2004-03-15  0.3200668  0.05810584 -0.8093966
6: 2004-03-16 -0.4670752 -0.95297664  0.4632159
           RH          AH
1: -0.2789256  0.93052499
2: -1.2931294 -0.58877664
3:  1.1668008  1.10508756
4: -1.4853740  0.99288191
5: -1.4771204 -0.04978804
6: -0.5826404  1.06793716

Затем я разбил данные на поезд и протестировал в соответствии с датой:

df_train <- df[Date<="2004/12/31"]
df_test <- df[Date>="2005/01/01" & 
                Date <= "2005/01/31"]

Поэтому я пропустил все значения после 31 января 2005 года. Надеюсь, это поможет

...