gpt4 book ai didi

r - 在 R 中拟合 `arima()` 模型后进行预测和绘图

转载 作者:行者123 更新时间:2023-12-01 22:00:26 27 4
gpt4 key购买 nike

刚刚熟悉时间序列并使用 this R-bloggers post作为 the following exercise 的指南:预测股票市场 future 返回的徒劳尝试...只是理解时间序列概念的练习。

问题是,当我绘制预测值时,我得到一条恒定线,这与历史数据不一致。这是蓝色的,位于稳定的历史道琼斯每日返回率的尾部。

enter image description here

实际上,我想要一个更“乐观”的视觉效果,或者一个“重新趋势”的图,例如我得到的预测航空旅客数量的图:

enter image description here

这是代码:

library(quantmod)
library(tseries)
library(forecast)
getSymbols("^DJI")
d = DJI$DJI.Adjusted
chartSeries(DJI)
adf.test(d)
dow = 100 * diff(log(d))[-1]
adf.test(dow)
train = dow[1 : (0.9 * length(dow))]
test = dow[(0.9 * length(dow) + 1): length(dow)]
fit = arima(train, order = c(2, 0, 2))
predi = predict(fit, n.ahead = (length(dow) - (0.9*length(dow))))$pred
fore = forecast(fit, h = 500)
plot(fore)

不幸的是,如果我尝试将相同的代码用于航空旅客预测,则会出现错误。例如:

fit = arima(log(AirPassengers), c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12))
pred <- predict(fit, n.ahead = 10*12)
ts.plot(AirPassengers,exp(pred$pred), log = "y", lty = c(1,3))

应用于当前问题可能会(?)像这样:

fit2 = arima(log(d), c(2, 0, 2))
pred = predict(fit2, n.ahead = 500)
ts.plot(d,exp(pred$pred), log = "y", lty = c(1,3))
Error in .cbind.ts(list(...), .makeNamesTs(...), dframe = dframe, union = TRUE) : non-time series not of the correct length

最佳答案

取得了一些进展,但 OP 太长了。

  1. 从完全不工作到稍微工作:或者为什么我收到“长度不正确的非时间序列”和其他神秘的错误消息......好吧,不知道细节,我突然想到检查我正在尝试的内容cbind.ts :is.ts(d) [1] FALSE啊哈!即使dxts对象,它不是时间序列。所以我只需要运行 as.ts(d) 。解决了!
  2. 市场预测不切实际:现在将其绘制为

    fit2 = arima(log(d), c(2, 1, 2)); pred = predict(fit2, n.ahead = 365 * 5) ts.plot(as.ts(d),exp(pred$pred), log = "y", col= c(4,2),lty = c(1,3),
    main="VIX = 0 Market Conditions", ylim=c(6000,20000))

enter image description here

好吧...在高盛工作的前景如此平淡。我需要吸引一些投资者。让我们再煮一下蛇油:

  • 让直线继续下去:让我们把“季节性”加起来,我们就准备好像 1999 年一样狂欢了:

    fit3 = arima(log(d), c(2, 1, 2), seasonal=list(order = c(0, 1, 1), period=12))

    pred = predict(fit3, n.ahead = 365 * 5) ts.plot(as.ts(d),exp(pred$pred), log = "y", col= c(2,4),lty = c(1,3),
    main="Investors Prospectus - Maddoff & Co., Inc.")

  • enter image description here

  • 快到了:我去了 John Oliver's页面并打印了作为官方财务顾问的证书,所以我准备好拿走你的退休金。为此,我只需要对 future 五年的乐观前景表达一些健康的不确定性。简单,简单... fore = forecast(fit2, h = 365 * 5); plot(fore) ,瞧...
  • enter image description here

    哦,不!我不可能得到任何兴奋剂来投资这个现实检查...幸好我没有放弃我的白天工作...等一下,我搞砸了输入模型:fore = forecast(fit3, h = 365 * 5) plot(fore) :

    enter image description here

    我要去斯台普斯...

    关于r - 在 R 中拟合 `arima()` 模型后进行预测和绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38492428/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com