开发者

Explaining ARIMA forecasts [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.

This question does not appear to be about programming within the scope defined in the help center.

Closed 7 hours ago.

This post was edited and submitted for review 6 hours ago.

Improve this question

Currently attempting to interpret the results of my forecast using an ARIMA model that was applied to time series data (Dataset below). The forecast attempted is for a year into the future. The data was fitted to an ARIMA(1,0,1) model after using auto.arima to see what the best model would be.

To give a little background on the dataset, it displays the amount of breaking & entering's that happened in Toronto by month between 2014 to 2021.

Plot results of the forecast: https://i.stack.imgur.com/j8IuE.png

What I used for my forecast:

#Convert timeseries
BEDATA_GROUPEDtssarima <- ts(BEDATA_GROUPED[,2], frequency = 12, start = c(2014, 1))
class(BEDATA_GROUPEDtssarima)

#Plot
forecast::autoplot(BEDATA_GROUPEDtssarima)

# Check autocorrelation: High autocorrelation and data is non stationary
acf(BEDATA_GROUPEDtssarima)

#Partial Autocorelation
pacf(BEDATA_GROUPEDtssarima)

#augmented test
adf.test(BEDATA_GROUPEDtssarima)

#auto.arima
beddatamodel <- auto.arima(BEDATA_GROUPEDtssarima,ic="aic",trace = TRUE)

#look at model
beddatamodel

#autocorelation for auto.arima
acf(ts(beddatamodel$residuals))

#Partial autocorrelation
pacf(ts(beddatamodel$residuals))

#Forecast
mybeddataforecast <- forecast(beddatamodel, level = c(95), h=12)

#Check forecast
mybeddataforecast

#plot
plot(mybeddataforecast)

#Check Accuracy
accuracy(mybeddataforecast)

DATA:

structure(list(occurrence_yrmn = c("2014-January", "2014-February", 
"2014-March", "2014-April", "2014-May", "2014-June", "2014-July", 
"2014-August", "2014-September", "2014-October", "2014-November", 
"2014-December", "2015-January", "2015-February", "2015-March", 
"2015-April", "2015-May", "2015-June", "2015-July&开发者_StackOverflow中文版quot;, "2015-August", 
"2015-September", "2015-October", "2015-November", "2015-December", 
"2016-January", "2016-February", "2016-March", "2016-April", 
"2016-May", "2016-June", "2016-July", "2016-August", "2016-September", 
"2016-October", "2016-November", "2016-December", "2017-January", 
"2017-February", "2017-March", "2017-April", "2017-May", "2017-June", 
"2017-July", "2017-August", "2017-September", "2017-October", 
"2017-November", "2017-December", "2018-January", "2018-February", 
"2018-March", "2018-April", "2018-May", "2018-June", "2018-July", 
"2018-August", "2018-September", "2018-October", "2018-November", 
"2018-December", "2019-January", "2019-February", "2019-March", 
"2019-April", "2019-May", "2019-June", "2019-July", "2019-August", 
"2019-September", "2019-October", "2019-November", "2019-December", 
"2020-January", "2020-February", "2020-March", "2020-April", 
"2020-May", "2020-June", "2020-July", "2020-August", "2020-September", 
"2020-October", "2020-November", "2020-December", "2021-January", 
"2021-February", "2021-March", "2021-April", "2021-May", "2021-June", 
"2021-July", "2021-August", "2021-September", "2021-October", 
"2021-November", "2021-December"), MCI = c(586, 482, 567, 626, 
625, 610, 576, 634, 636, 663, 657, 556, 513, 415, 510, 542, 549, 
618, 623, 666, 641, 632, 593, 617, 541, 523, 504, 536, 498, 552, 
522, 519, 496, 541, 602, 570, 571, 492, 560, 525, 507, 523, 593, 
623, 578, 657, 683, 588, 664, 582, 619, 512, 630, 644, 563, 654, 
635, 732, 639, 748, 719, 567, 607, 746, 739, 686, 805, 762, 696, 
777, 755, 675, 704, 617, 732, 609, 464, 487, 565, 609, 513, 533, 
505, 578, 526, 418, 428, 421, 502, 452, 509, 492, 478, 469, 457, 
457)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-96L))

My question:

(1) Based on the ending forecast and the steps completed to generate it, are there modifications that could be made to optimize my forecast? Transformation, differencing, etc.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜