График временных рядов не показывает линию жидкости

Я новичок в r и пытаюсь выполнить прогноз временных рядов ARIMA. Данные, которые я изучаю в электрической нагрузке за 15 мин. Мои данные выглядят следующим образом:

 day month year PTE periode_van periode_tm gemeten_uitwisseling
 1   1    01 2010   1      0 secs   900 secs                 2636
 2   1    01 2010   2    900 secs  1800 secs                 2621
 3   1    01 2010   3   1800 secs  2700 secs                 2617
 4   1    01 2010   4   2700 secs  3600 secs                 2600
 5   1    01 2010   5   3600 secs  4500 secs                 2582
 geplande_import geplande_export                date weekend
 1             719            -284 2010-01-01 00:00:00       0
 2             719            -284 2010-01-01 00:15:00       0
 3             719            -284 2010-01-01 00:30:00       0
 4             719            -284 2010-01-01 00:45:00       0
 5             650            -253 2010-01-01 01:00:00       0
 weekday Month gu_ma
 1       5    01    NA
 2       5    01    NA
 3       5    01    NA
 4       5    01    NA
 5       5    01    NA

Для создания временного ряда я использовал следующий код

library("zoo")
ZOO <- zoo(NLData$gemeten_uitwisseling, 
order.by=as.POSIXct(NLData$date, format="%Y-%m-%d %H:%M:%S"))

ZOO <- na.approx(ZOO)
tsNLData <- ts(ZOO)

plot(tsNLData)

Я также попробовал следующее

NLDatats <- ts(NLData$gemeten_uitwisseling, frequency = 96)

Однако, когда я строю данные, я получаю следующее;

Сюжет временного ряда

Как я могу решить это?

1 ответ

Решение

Кажется, с вашим графиком проблем нет, но ваши данные поступают с 15-минутными интервалами, а вы строите данные за 4 года. Естественно, это будет выглядеть как область с темным затенением, потому что нет способа показать тысячи точек данных, которые есть в вашей серии, на одном графике.

Если вы боретесь с обработкой такого большого количества данных, вы можете рассмотреть выборку из вашего фрейма данных перед построением графика, хотя это удалит сезонность и автокорреляцию из результата. Это может быть полезно, если вы хотите узнать средние значения вашего результата по времени, но не так полезно, чтобы увидеть сезонную и автокорреляционную структуру в данных.

Смотрите код ниже, который использует dplyr а также ggplot2 построить несколько смоделированных временных рядов, иллюстрирующих эти проблемы. Всегда лучше начать с симулированных данных, а затем работать со своими собственными данными.

require(ggplot2)
require(dplyr)

sim_data <- arima.sim(model=list(ar=.88,order=c(1,0,0)),n=10000,sd=.3)

#Too many points
data_frame(y=as.numeric(sim_data),x=1:10000) %>% ggplot(aes(y=y,x=x)) + geom_line() + 
  theme_minimal() + xlab('Time') + ylab('Y_t')


#Sample from data (random sample)
#However, this will remove autocorrelation/seasonality
data_frame(y=as.numeric(sim_data),x=1:10000) %>% sample_n(500) %>% 
  ggplot(aes(y=y,x=x)) + geom_line() + theme_minimal() + xlab('Time') + ylab('Y_t')


# Plot a subset, which preserves autocorrelation and seasonality
data_frame(y=as.numeric(sim_data),x=1:10000) %>% slice(1:300) %>% 
  ggplot(aes(y=y,x=x)) + geom_line() + theme_minimal() + xlab('Time') + ylab('Y_t')
Другие вопросы по тегам