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

全文链接:http://tecdat.cn/?p=18493

本文我们使用4个时间序列模型对每周的温度序列建模。第一个是通过auto.arima获得的,然后两个是SARIMA模型,最后一个是Buys-Ballot方法点击文末“阅读原文”获取完整代码数据)。

我们使用以下数据

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

R语言ARIMA集成模型预测时间序列分析_第1张图片

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

相关视频

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

R语言ARIMA集成模型预测时间序列分析_第2张图片

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

R语言ARIMA集成模型预测时间序列分析_第3张图片


点击标题查阅往期内容

R语言ARIMA集成模型预测时间序列分析_第4张图片

ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

outside_default.png

左右滑动查看更多

outside_default.png

01

R语言ARIMA集成模型预测时间序列分析_第5张图片

02

R语言ARIMA集成模型预测时间序列分析_第6张图片

03

R语言ARIMA集成模型预测时间序列分析_第7张图片

04

R语言ARIMA集成模型预测时间序列分析_第8张图片

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

acf(y,lag=120)

R语言ARIMA集成模型预测时间序列分析_第9张图片

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),

R语言ARIMA集成模型预测时间序列分析_第10张图片

对模型进行预测

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

R语言ARIMA集成模型预测时间序列分析_第11张图片

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

R语言ARIMA集成模型预测时间序列分析_第12张图片

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

R语言ARIMA集成模型预测时间序列分析_第13张图片

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

R语言ARIMA集成模型预测时间序列分析_第14张图片

最后比较4个模型的结果

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

R语言ARIMA集成模型预测时间序列分析_第15张图片

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

R语言ARIMA集成模型预测时间序列分析_第16张图片

我们使用前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)

R语言ARIMA集成模型预测时间序列分析_第17张图片

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

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

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

在函数中,我们使用

R语言ARIMA集成模型预测时间序列分析_第18张图片

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


R语言ARIMA集成模型预测时间序列分析_第19张图片

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《R语言ARIMA集成模型预测时间序列分析》。

点击标题查阅往期内容

R语言用ARIMA模型滑动时间窗口识别网络流量时间序列异常值

python用ARIMA模型预测CO2浓度时间序列实现

R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言多元Copula GARCH 模型时间序列预测

python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化

R语言中的copula GARCH模型拟合时间序列并模拟分析

matlab使用Copula仿真优化市场风险数据VaR分析

R语言多元Copula GARCH 模型时间序列预测

R语言Copula函数股市相关性建模:模拟Random Walk(随机游走)

R语言实现 Copula 算法建模依赖性案例分析报告

R语言ARMA-GARCH-COPULA模型和金融时间序列案例

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言COPULA和金融时间序列案例

matlab使用Copula仿真优化市场风险数据VaR分析

matlab使用Copula仿真优化市场风险

R语言多元CopulaGARCH模型时间序列预测

R语言Copula的贝叶斯非参数MCMC估计

R语言COPULAS和金融时间序列

R语言乘法GARCH模型对高频交易数据进行波动性预测

R语言GARCH-DCC模型和DCC(MVT)建模估计

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

R语言时间序列GARCH模型分析股市波动率

R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略

R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模

R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析

R语言多元Copula GARCH 模型时间序列预测

R语言使用多元AR-GARCH模型衡量市场风险

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言用Garch模型和回归模型对股票价格分析

GARCH(1,1),MA以及历史模拟法的VaR比较

matlab估计arma garch 条件均值和方差模型

R语言ARMA-GARCH-COPULA模型和金融时间序列案例

23d29e6ee65ce4a0ec43158d578cf9e3.png

6aae270a5d9b2c39dcf3ab382a4b06ea.jpeg

R语言ARIMA集成模型预测时间序列分析_第20张图片

你可能感兴趣的:(r语言,大数据,开发语言,数据挖掘,人工智能)