Загрузка необходимых пакетов:
library(tidyverse)
library(readxl)
library(ggplot2)
library(forecast)
library(tseries)
Загрузка набора данных:
stock_data <- read_excel("stockk1.xlsx")
names(stock_data) <- c("IMEX", "USD", "SP", "Oil", "P", "IQ")
Преобразование фрейма данных в вид фрейма временных рядов:
stock_data_ts<-ts(stock_data,start = c(2000, 3), frequency = 12)
class(stock_data_ts)
[1] "mts" "ts" "matrix"
head(stock_data_ts)
IMEX USD SP Oil P IQ
Mar 2000 198.99 28.65 1366.42 29.04 101.04 110.8
Apr 2000 257.30 28.60 1498.58 24.15 100.64 109.0
May 2000 244.88 28.40 1452.43 23.33 100.89 112.0
Jun 2000 221.10 28.23 1420.60 29.03 101.75 110.8
Jul 2000 199.13 28.05 1454.60 31.30 102.55 110.9
Aug 2000 209.47 27.82 1430.83 25.43 101.79 113.5
plot(stock_data_ts)

Деление на train and test set:
stock_train <- window(stock_data_ts, end = c(2014, 12))
stock_test <- window(stock_data_ts, start = c(2015,1))
plot(stock_train)

dim(stock_train)
[1] 178 6
dim(stock_test)
[1] 39 6
Применение модели по autoarima:
# fit model
covariates <- c("USD", "SP", "Oil")
fit <- auto.arima(stock_train[,"IMEX"], xreg = stock_train[, covariates])
Прогнозирование:
# forecast
fcast <- forecast(fit, xreg = stock_test[, covariates])
plot(fcast)

Точность прогнозирование:
accuracy(fcast$mean, stock_test[,"IMEX"])
ME RMSE MAE MPE MAPE ACF1 Theil's U
Test set 324.0004 357.8895 328.4305 16.71198 17.02992 0.7510452 3.885485
LS0tDQp0aXRsZTogIkFSSU1BWCINCmF1dGhvcjogIkN1b25nIFNhaSINCmRhdGU6ICJBcHJpbCAyNSwgMjAxOCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCg0KKirQl9Cw0LPRgNGD0LfQutCwINC90LXQvtCx0YXQvtC00LjQvNGL0YUg0L/QsNC60LXRgtC+0LI6KioNCg0KYGBge3IgY2Fyc30NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGZvcmVjYXN0KQ0KbGlicmFyeSh0c2VyaWVzKQ0KYGBgDQoNCioq0JfQsNCz0YDRg9C30LrQsCDQvdCw0LHQvtGA0LAg0LTQsNC90L3Ri9GFOioqDQoNCmBgYHtyfQ0Kc3RvY2tfZGF0YSA8LSByZWFkX2V4Y2VsKCJzdG9ja2sxLnhsc3giKQ0KbmFtZXMoc3RvY2tfZGF0YSkgPC0gYygiSU1FWCIsICJVU0QiLCAiU1AiLCAiT2lsIiwgIlAiLCAiSVEiKQ0KYGBgDQoNCioq0J/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjQtSDRhNGA0LXQudC80LAg0LTQsNC90L3Ri9GFINCyINCy0LjQtCDRhNGA0LXQudC80LAg0LLRgNC10LzQtdC90L3Ri9GFINGA0Y/QtNC+0LI6KioNCg0KYGBge3J9DQpzdG9ja19kYXRhX3RzPC10cyhzdG9ja19kYXRhLHN0YXJ0ID0gYygyMDAwLCAzKSwgZnJlcXVlbmN5ID0gMTIpDQpjbGFzcyhzdG9ja19kYXRhX3RzKQ0KaGVhZChzdG9ja19kYXRhX3RzKQ0KcGxvdChzdG9ja19kYXRhX3RzKQ0KYGBgDQoNCioq0JTQtdC70LXQvdC40LUg0L3QsCB0cmFpbiBhbmQgdGVzdCBzZXQ6KioNCg0KYGBge3J9DQpzdG9ja190cmFpbiA8LSB3aW5kb3coc3RvY2tfZGF0YV90cywgZW5kID0gYygyMDE0LCAxMikpDQpzdG9ja190ZXN0IDwtIHdpbmRvdyhzdG9ja19kYXRhX3RzLCBzdGFydCA9IGMoMjAxNSwxKSkNCnBsb3Qoc3RvY2tfdHJhaW4pDQpkaW0oc3RvY2tfdHJhaW4pDQpkaW0oc3RvY2tfdGVzdCkNCmBgYA0KDQoqKtCf0YDQuNC80LXQvdC10L3QuNC1INC80L7QtNC10LvQuCDQv9C+IGF1dG9hcmltYToqKg0KDQpgYGB7cn0NCiMgZml0IG1vZGVsDQpjb3ZhcmlhdGVzIDwtIGMoIlVTRCIsICJTUCIsICJPaWwiKQ0KZml0IDwtIGF1dG8uYXJpbWEoc3RvY2tfdHJhaW5bLCJJTUVYIl0sIHhyZWcgPSBzdG9ja190cmFpblssIGNvdmFyaWF0ZXNdKQ0KYGBgDQoNCioq0J/RgNC+0LPQvdC+0LfQuNGA0L7QstCw0L3QuNC1Kio6DQoNCmBgYHtyfQ0KIyBmb3JlY2FzdA0KZmNhc3QgPC0gZm9yZWNhc3QoZml0LCB4cmVnID0gc3RvY2tfdGVzdFssIGNvdmFyaWF0ZXNdKQ0KcGxvdChmY2FzdCkNCmBgYA0KDQoqKtCi0L7Rh9C90L7RgdGC0Ywg0L/RgNC+0LPQvdC+0LfQuNGA0L7QstCw0L3QuNC1OioqDQpgYGB7cn0NCmFjY3VyYWN5KGZjYXN0JG1lYW4sIHN0b2NrX3Rlc3RbLCJJTUVYIl0pDQpgYGANCg0K