R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测

简介: R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测

电力负荷预测是电网规划的基础,其水平的高低将直接影响电网规划质量的优劣。为了准确预测电力负荷,有必要进行建模。本文在R语言中使用分位数回归、GAM样条曲线、指数平滑和SARIMA模型对电力负荷时间序列预测并比较。

用电量

本文使用的数据是1996年至2010年之间的每周用电量数据,序列

load ("Load.RData")
plot (ts( data = Load , start= 1996 , frequency = 52) )

用电量变量及其影响因素:

•星期几(离散)

•时间小时(离散或非参数)

•年(连续)

交互影响:

•日期和时间

•年份和时间

活动

•公共假期

温度对模型的影响:高温、低温和极冷温度

 

模型:

分段线性函数,

GAM模型中的样条曲线

 

数据探索

时间对电力负荷的影响


> plot ( NumWeek , Load )

温度对电力负荷的影响,(Tt,Yt)

> plot ( Temp , Load )

负荷序列(Yt)的自相关的影响,



> acf (Load )

 

OLS与 中位数回归

 

中位数回归通过单调变换是稳定的。




lm(y˜x, data =df)
lm(y˜x, data =df , tau =.5)

现在,中位数回归将始终有两个观察结果。






which ( predict ( fit ))
21 46

 

分位数回归和指数平滑

简单的指数平滑:

经典地,我们寻找使预测误差最小的α,即

 

X=as. numeric ( Nile )
SimpleSmooth = function (a){
for (t in 2:T{L[t=a*X[t+(1 -a)*L[t -1
}lines ( SimpleSmooth (.2) ,col =" red ")




V= function (a){


for (t in 2:T){
L[t]=a*X[t]+(1 -a)*L[t -1]
erreur [t]=X[t]-L[t -1] }
return ( sum ( erreur ˆ2) )


optim (.5 ,V)$ par
[1] 0.2464844
hw= HoltWinters (X, beta =FALSE
hw$ alpha
[1] 0.2465579

我们可以考虑分位数误差


HWtau = function ( tau ){
loss = function (e) e*(tau -(e< ;=0) *1)
V= function (a){




for (t in 2:T){
L[t]=a*X[t+(1 -a)*L[t -1
erreur [t=X[t-L[t -1
return ( sum ( loss ( erreur


optim (.5 ,V)$ par


plot (X, type ="b",cex =.6


lines ( SimpleSmooth ( HWtau (.8,col=" blue ",
lwd =2)

 

双指数平滑

我们考虑分位数误差

其中

hw= HoltWinters (X, gamma =FALSE ,l. start =X[1])
hw$ alpha
alpha
0.4223241
hw$ beta
beta
0.05233389


DouSmo = function (a,b){


for (t in 2:T){
L[t]=a*X[t+(1 -a*(L[t -1]+ B[t -1]
B[t]=b*(L[t]-L[t -1]) +(1 -b*B[t -1]
return (L+B)

预测

数理统计建立在对概率模型参数的估计和假设检验的基础上。

统计中的预测:当模型拟合观测值时,它会提供良好的预测。

相反,我们使用没有出现过的场景,它使我们能够评估未来的主要趋势,而不是预测极端事件的能力。

 

预测变量的构造



plot (ts( data = Load $Load , start =
1996 , frequency = 52) ,col =" white "

回归



plot (ts( data = Temp , start =
1996 , frequency = 52) ,
lines (ts( data = train $Temp , start =
1996 , frequency = 52) )
lines (ts( data = test $Temp , start =
1996+620 /52, frequency = 52)

 

SARIMA模型

s = 52




ARIMA = arima (z, order =c(1 ,0 ,0 ,seasonal =list ( order =c(0 ,1 ,0 ,period =52
plot ( forecast (ARIMA ,h =112 )

相关文章
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
326 3
|
机器学习/深度学习
R语言模型评估:深入理解混淆矩阵与ROC曲线
【9月更文挑战第2天】混淆矩阵和ROC曲线是评估分类模型性能的两种重要工具。混淆矩阵提供了模型在不同类别上的详细表现,而ROC曲线则通过综合考虑真正率和假正率来全面评估模型的分类能力。在R语言中,利用`caret`和`pROC`等包可以方便地实现这两种评估方法,从而帮助我们更好地理解和选择最适合当前任务的模型。
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
机器学习/深度学习 数据采集
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
上述介绍仅为简要概述,每个模型在实施时都需要仔细调整与优化。为了实现高度精确的预测,模型选择与调参是至关重要的步骤,并且交叉验证是提升模型稳健性的有效途径。在真实世界的房价预测问题中,可能还需要结合地域经济、市场趋势等宏观因素进行综合分析。
349 3
|
机器学习/深度学习 数据可视化 算法
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为1
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
机器学习/深度学习 数据可视化 数据挖掘
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
|
机器学习/深度学习 数据采集 算法
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分析分类预测房价及交叉验证|数据分享
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分析分类预测房价及交叉验证|数据分享
|
数据可视化
R语言汇率、股价指数与GARCH模型分析:格兰杰因果检验、脉冲响应与预测可视化
R语言汇率、股价指数与GARCH模型分析:格兰杰因果检验、脉冲响应与预测可视化
|
机器学习/深度学习 数据可视化 数据挖掘
R语言神经网络模型金融应用预测上证指数时间序列可视化
R语言神经网络模型金融应用预测上证指数时间序列可视化