首页 > 解决方案 > 我想将数据分成两个数据集:一个训练数据集和一个测试数据集。(R中的时间序列分析)

问题描述

我想将数据分成两个数据集:一个训练数据集和一个测试数据集。目的是使用训练数据集预测 2005 年 1 月每天的 NOx 浓度值。因此,训练数据集应包括前 296 次观测(直到 2004 年的最后一次观测)。测试数据集应包括 2005 年 1 月的 31 次每日观察。

该数据集包含来自嵌入在空气质量化学多传感器设备中的多个金属氧化物化学传感器阵列的 390 个日常响应实例。该设备位于意大利某城市道路一级污染严重的现场。数据记录时间为 2004 年 3 月至 2005 年 4 月(一年)。提供总氮氧化物 (NOx) 和二氧化氮 (NO2) 的 Ground Truth 每日平均浓度,以及有关天气状况的信息。缺失值用值 -200 标记。

包含 391 个观测值的数据集,从 2004 年 11 月 3 日到 2005 年 4 月 4 日几乎一年

标签: rtime-seriesforecast

解决方案


这是我的建议,我包含了一个可重现的数据集示例(变量的随机值):

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"]

所以我忽略了 2005 年 1 月 31 日之后的所有值。希望它有所帮助


推荐阅读