График временных рядов не показывает линию жидкости
Я новичок в 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')