如何在R中定期处理缺少时间戳的时间序列?

时间:2019-09-25 09:10:47

标签: r forecasting arima

我正在尝试对表示为R数据帧上存储的时间戳值对的历史数据进行预测:

            timestamp value
  2018-08-01 11:00:00 13.00
  2018-08-01 11:15:00 11.75
  2018-08-01 11:30:00 13.40
  ...

时间戳以固定的频率出现,但是此历史数据帧可能包含缺少的时间戳。例如:2018-08-01 11:15:00 11.75丢失。

            timestamp value
  2018-08-01 11:00:00 13.00
  2018-08-01 11:30:00 13.40
  ...

无法插入这些丢失的时间戳,因为有时丢失数据的间隙太大。

因此,我想知道应该如何生成时间序列以处理这种情况并可以由ARIMA模型使用。

实际上,我正在做的是使用ts函数,该函数具有每日季节性(4 * 24)(每小时观察4次)。但这是一种假设,即没有遗漏的观察结果:

data_df = read.table("./data/my_file.csv", header=FALSE, sep=";", col.names =c("timestamp", "value"))
data_df$timestamp = as.POSIXct(data_df$timestamp / 1000, origin="1970-01-01")

labels = as.numeric(train_df$value)
timeseries =  ts(labels, frequency=96)
model = auto.arima(timeseries) 

结果,预测效果不佳。如图所示,其中绿线是实际值,红线是平均预测值。 enter image description here

按照结果进行操作。我认为时间序列的生成方式和传递给模型的方式暗含了在绘图上描述的结果。

预先感谢您的帮助和建议。

0 个答案:

没有答案