Загрузка необходимых пакетов:

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