我对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)
然而,当我绘制数据时,我得到以下内容;
我该如何解决这个问题?
答案 0 :(得分:0)
图表似乎没有任何问题,但您的数据间隔为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')