R语言用ARIMA模型预测巧克力的兴趣趋势时间序列

简介: R语言用ARIMA模型预测巧克力的兴趣趋势时间序列

在本文中我们对在Google趋势上的关键字“ Chocolate ”序列进行预测。序列如下




> report = read.csv(url,skip=6,header=FALSE,nrows=636)
> plot(X,type="l")

 

每月建立一个ARIMA模型比每周建立一个容易。因此,我们将每月数据序列化,将预测与观察结果进行比较。




> Y = tapply(base$X,as.factor(base$AM),mean)> Z = ts(as.numeric(Y[1:(146-24)]), start=c(2004,1),frequency=12)

 

在这里转换序列的对数序列。我们观察到趋势的变化(开始时是线性的,此后相对恒定)。




> X=log(as.numeric(Z))
> trend=lm(X~T+I((T-80)*(T>80)),data=db)

 

这是我们要建模的序列残差,



residuals(trend)

 

要对该序列进行建模,我们可以先查看其自相关序列


>  plot(acf(Y,lag=36),lwd=5)

 

和偏自相关序列



> plot(pacf(Y,lag=36),lwd=5)

 

该序列是稳定的,但是有很强的周期性成分。我们可以尝试AR模型或ARMA(带有AR的残差不是白噪声)。



arima(Y,order=c(12,0,12),+ seasonal = list(order = c(0, 0, 0 , period = 12 )

这里的残差序列是白噪声

 

然后,我们可以使用此模型对初始序列进行预测





> Y2=tapply(base$X,as.factor(base$AM),mean)
> lines(futur,obs_reel,col="blue")

 

我们的模型为红色,真实的观察结果为蓝色。然后,我们可以根据这24个观测值计算误差平方和。



> sum( (obs_reel-Xp)^2 )[1] 190.9722

但是我们可以尝试其他模型,例如通过更改趋势或通过更改ARIMA模型(通过季节性单位根)来尝试





> E=residuals(model3)> model3
Coefficients:ma1     ma2     sma10.2246  0.3034  -0.9999s.e.  0.0902  0.0925   0.3503
sigma^2 estimated as 0.002842:  log likelihood = 152.37,  aic = -296.75

我们检查残差序列确实是白噪声





Box-Pierce test
data:  EX-squared = 6.326, df = 12, p-value = 0.8988

 

然后,我们可以对原始系列进行预测,



> Yp=predict(model3,n.ahead=24) ++   predict(trend,newdata=data.frame(T=futur)
> Y2=tapply( X,as.factor( AM),mean)

 

误差平方和低一些


> sum( (obs_reel-Xp)^2 )[1] 173.8138

也就是说,在过去的两年中,第二个模型比以前的模型要好,是对未来几年进行预测的好方法。


相关文章
|
4月前
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
4月前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
7天前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
9天前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
9天前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
4月前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
|
8天前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
4月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
4月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
8天前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。

热门文章

最新文章