R语言ARIMA集成模型预测时间序列分析

简介: R语言ARIMA集成模型预测时间序列分析

本文我们使用4个时间序列模型对每周的温度序列建模。第一个是通过auto.arima获得的,然后两个是SARIMA模型,最后一个是Buys-Ballot方法。

我们使用以下数据





k=620
n=nrow(elec)
futu=(k+1):n
y=electricite$Load[1:k]
plot(y,type="l")

我们开始对温度序列进行建模(温度序列对电力负荷的影响很大)





y=Temp
plot(y,type="l")


abline(lm(y[ :k]~y[( :k)-52]),col="red")

 

时间序列是自相关的,在52阶





acf(y,lag=120)


 


model1=auto.arima(Y)
acf(residuals(model1),120)

我们将这个模型保存在工作空间中,然后查看其预测。让我们在这里尝试一下SARIMA





arima(Y,order = c(0,0,0),
seasonal = list(order = c(1,0,0)))

然后让我们尝试使用季节性单位根



Z=diff(Y,52)
arima(Z,order = c(0,0,1),
seasonal = list(order = c(0,0,1)))

然后,我们可以尝试Buys-Ballot模型




lm(Temp~0+as.factor(NumWeek),

对模型进行预测

plot(y,type="l",xlim=c(0,n )
abline(v=k,col="red")
lines(pre4,col="blue")



plot(y,type="l",xlim=c(0,n))
abline(v=k,col="red")



plot(y,type="l",xlim=c(0,n))



plot(y,type="l",xlim=c(0,n))
abline(v=k,col="red")

最后比较4个模型的结果



lines( MODEL$y1,col="
lines( MODEL$y2,col="green")
lines( MODEL$y3,col="orange")
lines( MODEL$y4,col="blue")

然后,我们可以尝试加权平均值来优化模型,而不是找出四个中的哪一个模型是“最优”,y ^ T = ∑iωiy ^ t(i)其中ω=(ωi),ω1+ ... +ωk= 1。然后,我们想要找到“最佳”权重。我们将在第一个m值上校准我们的四个模型,然后比较下111个值(和真实值)的预测组合,

 

我们使用前200个值。

然后,我们在这200个值上拟合4个模型

然后我们进行预测


y1=predict(model1,n.ahead = 111)$pred,
y2=predict(model2,n.ahead = 111)$pred,
y3=predict(model3,n.ahead = 111)$pred,
y4=predict(model4,n.ahead = 111)$pred+

为了创建预测的线性组合,我们使用






a=rep(1/4,4)
y_pr = as.matrix(DOS[,1:4]) %*% a

因此,我们可视化这4个预测,它们的线性组合(带有等权重)及其观察值

为了找到权重的“最佳”值,最小化误差平方和,我们使用以下代码





function(a) sum( DONN[,1:4  %*% a-DONN[,5 )^2

我们得到最优权重



optim(par=c(0,0,0),erreur2)$par

然后,我们需要确保两种算法的收敛性:SARIMA参数的估计算法和权重参数的研究算法




if(inherits(TRY, "try-error")   arima(y,order = c(4,0,0)
seasonal = list(order = c(1,0,0)),method="CSS")

然后,我们查看权重随时间的变化。

获得下图,其中粉红色的是Buys-Ballot,粉红色的是SARIMA模型,绿色是季节性单位根,



barplot(va,legend = rownames(counts)

我们发现权重最大的模型是Buys Ballot模型。

可以更改损失函数,例如,我们使用90%的分位数,



tau=.9
function(e) (tau-(e<=0))*e

在函数中,我们使用

 

 

这次,权重最大的两个模型是SARIMA和Buys-Ballot。


相关文章
|
6天前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
6天前
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
6天前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
6天前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
|
6天前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
6天前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
6天前
利用R语言进行典型相关分析实战
利用R语言进行典型相关分析实战
|
6天前
|
机器学习/深度学习 数据可视化
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
|
6天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
该文是一系列关于从零开始手写实现 Apache Tomcat 的教程概述。作者希望通过亲自动手实践理解 Tomcat 的核心机制。文章讨论了 Spring Boot 如何实现直接通过 `main` 方法启动,Spring 与 Tomcat 容器的集成方式,以及两者生命周期的同步原理。文中还提出了实现 Tomcat 的启发,强调在设计启动流程时确保资源的正确加载和初始化。最后提到了一个名为 mini-cat(嗅虎)的简易 Tomcat 实现项目,开源于 [GitHub](https://github.com/houbb/minicat)。
|
6天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
本文探讨了Spring Boot如何实现像普通Java程序一样通过main方法启动,关键在于Spring Boot的自动配置、内嵌Servlet容器(如Tomcat)以及`SpringApplication`类。Spring与Tomcat集成有两种方式:独立模式和嵌入式模式,两者通过Servlet规范、Spring MVC协同工作。Spring和Tomcat的生命周期同步涉及启动、运行和关闭阶段,通过事件和监听器实现。文章鼓励读者从实现Tomcat中学习资源管理和生命周期管理。此外,推荐了Netty权威指南系列文章,并提到了一个名为mini-cat的简易Tomcat实现项目。

热门文章

最新文章