我有一个从01-01-2004到31-112-2012的每天电力负荷的数据集 . 我想预测每天的电力负荷需求 .
我已经完成了以下步骤 .
step-1.
加载R包并读取数据--------------------------------
library(ggplot2)
library(forecast)
library(tseries)
library(xts)
设置文件夹并读取数据-----------------------------------
setwd("G:\\MY Project\\Jigsaw\\R practice\\Electricity forcasting project\\Avijit")
daily_data<-read.csv("demandload.csv", header = TRUE, stringsAsFactors = FALSE)
Step-2
----------------------------- step-2探索数据-------------- -----------
转换为as.data
daily_data$date<-as.Date(daily_data$date,format = "%d-%m-%Y")
将数据帧转换为时间序列数据 .
daily_ts<-ts(daily_data$demand, frequency = 30)
daily_xts<-xts(daily_data$demand,daily_data$date)
head(daily_data)
date demand
1 2004-01-01 488.07
2 2004-01-02 582.02
3 2004-01-03 575.58
4 2004-01-04 542.39
5 2004-01-05 600.26
6 2004-01-06 544.76
str(daily_data)
data.frame': 3288 obs. of 2 variables:
$ date : Date, format: "2004-01-01" "2004-01-02" "2004-01-03" ...
$ demand: num 488 582 576 542 600 ...
class(daily_ts)
[1] "ts"
>
class(daily_xts)
[1] "xts" "zoo"
>
------------------第3步 - 通过绘图进行数据可视化------------------
绘图
plot(daily_xts, main = "Energy demand", xlab="date", ylab="demand(GWh)")
Step-4
星期几
daily_data$day<-as.factor(weekdays(as.Date(daily_data$date,"%y-%m-%d")))
按年度汇总需求(平均)
avg_demand_per_yearday<-aggregate(demand~day, daily_data, "mean")
按星期几的需求
p<-ggplot(daily_data,aes(day, demand))
p+geom_boxplot() + xlab("day") +ylab("demand(GWh)") +ggtitle("Demand per day of the week")
我的目标是将auto.ARIMA模型和预测下一个h = 7的电力负荷需求 .
我坚持要分解数据 . 我需要延长数据的时间吗?如图中所示,有很多噪音 . 我必须平滑数据 . 在找到ARIMA模型的候选人之前,我怎么能够继续?
一旦我尝试使用d = 1和d = 2的ACF和PACF绘图,使用移动平均工作日数据,但它没有给我p和q的有效候选人?我也尝试用Ljung盒子测试验证 . 它表明我的模型不是有效的模型 .
因此,我必须得出结论
需要更多数据准备或平滑数据 .
建议下一步随时欢迎 .
谢谢