1 Load library

require(fpp3)
## Loading required package: fpp3
## Registered S3 method overwritten by 'tsibble':
##   method               from 
##   as_tibble.grouped_df dplyr
## ── Attaching packages ──────────────────────────────────────────── fpp3 1.0.1 ──
## ✔ tibble      3.3.0     ✔ tsibble     1.1.6
## ✔ dplyr       1.1.4     ✔ tsibbledata 0.4.1
## ✔ tidyr       1.3.1     ✔ feasts      0.4.1
## ✔ lubridate   1.9.4     ✔ fable       0.4.1
## ✔ ggplot2     4.0.0
## ── Conflicts ───────────────────────────────────────────────── fpp3_conflicts ──
## ✖ lubridate::date()    masks base::date()
## ✖ dplyr::filter()      masks stats::filter()
## ✖ tsibble::intersect() masks base::intersect()
## ✖ tsibble::interval()  masks lubridate::interval()
## ✖ dplyr::lag()         masks stats::lag()
## ✖ tsibble::setdiff()   masks base::setdiff()
## ✖ tsibble::union()     masks base::union()
require(fable)
require(fabletools)
require(forecast)
## Loading required package: forecast
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
require(feasts)
require(ggplot2)
library(psych)
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(ggplot2)
require(visdata)
## Loading required package: visdata
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : there is no package called 'visdata'

2 clear everything, set wd, load data, missing check, class, declare ts data

setwd("C:/Users/lfult/OneDrive - bc.edu/_Courses/Boston College/Predictive analytics")
df <- read.csv("df_train_moneysupply.csv")

3 Same Baseline Transforms

Used powerTransform to get approximate powers

df$CPI=log(df$CPI)
df$GDP=log(df$GDP)
df$M2S=df$M2S^(-1)
df$IR=sqrt(df$IR)
df$M2V=df$M2V^2.5

4 Create a time series object for the training data

df$Quarter=seq(as.Date("1968/1/1"), as.Date("2023/1/1"), by="1 quarter")
df$Quarter=yearquarter(df$Quarter)
df$DATE=NULL

myts=df%>%as_tsibble(index = Quarter)
train=myts[1:184,]
test=myts[185:nrow(df),]
myts%>%autoplot(GDP)

5 Stationarity

train |> ACF(CPI) |>  autoplot() + labs(subtitle = "ACF for CPI")

train |> ACF(GDP) |>  autoplot() + labs(subtitle = "ACF for GDP")

train |> ACF(M2S) |>  autoplot() + labs(subtitle = "ACF for M2S")

train |> ACF(IR)  |>  autoplot() + labs(subtitle = "ACF for IR")

train |> ACF(M2V) |>  autoplot() + labs(subtitle = "ACF for M2V")

#power selections from powerTransform...GDP could have been square root, but log makes sense.
train|>features(CPI, unitroot_ndiffs) #optimal number of differences, kpss
## # A tibble: 1 × 1
##   ndiffs
##    <int>
## 1      1
train|>features(CPI, unitroot_nsdiffs) #optimal number of seasonal differencces
## # A tibble: 1 × 1
##   nsdiffs
##     <int>
## 1       0
train|>features(GDP, unitroot_ndiffs)
## # A tibble: 1 × 1
##   ndiffs
##    <int>
## 1      1
train|>features(GDP, unitroot_nsdiffs)
## # A tibble: 1 × 1
##   nsdiffs
##     <int>
## 1       0
train|>features(M2S, unitroot_ndiffs)
## # A tibble: 1 × 1
##   ndiffs
##    <int>
## 1      1
train|>features(M2S, unitroot_nsdiffs)
## # A tibble: 1 × 1
##   nsdiffs
##     <int>
## 1       0
train|>features(IR, unitroot_ndiffs)
## # A tibble: 1 × 1
##   ndiffs
##    <int>
## 1      1
train|>features(IR, unitroot_nsdiffs)
## # A tibble: 1 × 1
##   nsdiffs
##     <int>
## 1       0
train|>features(M2V, unitroot_ndiffs)
## # A tibble: 1 × 1
##   ndiffs
##    <int>
## 1      1
train|>features(M2V, unitroot_nsdiffs)
## # A tibble: 1 × 1
##   nsdiffs
##     <int>
## 1       0

6 Differences

All differences = 1

train|>mutate(diff_CPI=difference(CPI,1))|>features(diff_CPI, unitroot_kpss) #1 difference works
## # A tibble: 1 × 2
##   kpss_stat kpss_pvalue
##       <dbl>       <dbl>
## 1    0.0659         0.1
train|>mutate(diff_GDP=difference(GDP,1))|>features(diff_GDP, unitroot_kpss) #1 difference works
## # A tibble: 1 × 2
##   kpss_stat kpss_pvalue
##       <dbl>       <dbl>
## 1     0.178         0.1
train|>mutate(diff_M2S=difference(M2S,1))|>features(diff_M2S, unitroot_kpss) #1 difference works
## # A tibble: 1 × 2
##   kpss_stat kpss_pvalue
##       <dbl>       <dbl>
## 1    0.0591         0.1
train|>mutate(diff_IR=difference(IR, 1))|>features(diff_IR, unitroot_kpss) #1 difference works
## # A tibble: 1 × 2
##   kpss_stat kpss_pvalue
##       <dbl>       <dbl>
## 1     0.132         0.1
train|>mutate(diff_M2V=difference(M2V), 1)|>features(diff_M2V, unitroot_kpss) #1 difference works
## # A tibble: 1 × 2
##   kpss_stat kpss_pvalue
##       <dbl>       <dbl>
## 1     0.411      0.0724

7 Build Initial Columns

myts$newCPI=difference(myts$CPI, differences=1)
myts$newGDP=difference(myts$GDP, differences=1)
myts$newM2S=difference(myts$M2S, differences=1)
myts$newIR=difference(myts$IR, differences=1)
myts$newM2V=difference(myts$M2V, differences=1)


train=myts[1:184,]
test=myts[185:nrow(df),]

8 Determine VAR model

Var suggests 1 lag only

fit=train |>model(
  VAR(vars(newCPI,newGDP,newM2S,newIR,newM2V)))#aic and bic both estimate 1 lag
fit
## # A mable: 1 x 1
##   `VAR(vars(newCPI, newGDP, newM2S, newIR, newM2V))`
##                                              <model>
## 1                                   <VAR(1) w/ mean>

9 Look at Resultant ACF

fit |>
  augment() |>
  ACF(.innov) |>
  autoplot()

# Rebuild Columns

myts$lagCPI=c(NA,myts$newCPI[2:nrow(myts)-1])
myts$lagGDP=c(NA,myts$newGDP[2:nrow(myts)-1])
myts$lagM2S=c(NA,myts$newM2S[2:nrow(myts)-1])
myts$lagIR=c(NA,myts$newIR[2:nrow(myts)-1])
myts$lagM2V=c(NA,myts$newM2V[2:nrow(myts)-1])


train=myts[1:184,]
test=myts[185:nrow(df),]

10 Forecast

mylm1=lm(newCPI~lagCPI+lagGDP+lagM2S+lagIR+lagM2V, data=train)
mylm2=lm(newGDP~lagCPI+lagGDP+lagM2S+lagIR+lagM2V, data=train)
mylm3=lm(newM2S~lagCPI+lagGDP+lagM2S+lagIR+lagM2V, data=train)
mylm4=lm(newIR~lagCPI+lagGDP+lagM2S+lagIR+lagM2V, data=train)
mylm5=lm(newM2V~lagCPI+lagGDP+lagM2S+lagIR+lagM2V, data=train)

11 Comparison of Coefficients from VAR and OLS

The ‘fit’ variable is the auto-generated VAR. mylm* are the OLS regressions

rbind(coef(mylm1), t(coef(fit)[c(6,1:5),4]))
##          (Intercept)   lagCPI    lagGDP    lagM2S      lagIR    lagM2V
##            0.0101629 0.430585 -2.303102 -1580.515 0.01066858 0.1585022
## estimate   0.0101629 0.430585 -2.303102 -1580.515 0.01066858 0.1585022
rbind(coef(mylm2),t(coef(fit)[c(12,7:11),4]))
##          (Intercept)       lagCPI     lagGDP    lagM2S        lagIR     lagM2V
##          0.004815946 -0.009485689 0.08806224 -612.1853 -0.001715459 0.01348221
## estimate 0.004815946 -0.009485689 0.08806224 -612.1853 -0.001715459 0.01348221
rbind(coef(mylm3),t(coef(fit)[c(18,13:17),4]))
##           (Intercept)       lagCPI        lagGDP     lagM2S        lagIR
##          4.401801e-07 5.121667e-06 -0.0004248432 -0.1354854 -1.33017e-07
## estimate 4.401801e-07 5.121667e-06 -0.0004248432 -0.1354854 -1.33017e-07
##                lagM2V
##          3.809335e-05
## estimate 3.809335e-05
rbind(coef(mylm4),t(coef(fit)[c(24,19:23),4]))
##          (Intercept)    lagCPI    lagGDP    lagM2S      lagIR   lagM2V
##          -0.04498308 0.1899564 -1.071988 -18365.05 -0.3524108 1.195452
## estimate -0.04498308 0.1899564 -1.071988 -18365.05 -0.3524108 1.195452
rbind(coef(mylm5),t(coef(fit)[c(30,25:29),4]))
##          (Intercept)      lagCPI    lagGDP    lagM2S       lagIR   lagM2V
##           0.02284275 -0.05501349 -7.354793 -11302.32 -0.03399474 1.000716
## estimate  0.02284275 -0.05501349 -7.354793 -11302.32 -0.03399474 1.000716

12 Forecast

require(forecast)

myf1=forecast(mylm1, as.data.frame(test))
(mys1=summary(myf1))
## 
## Forecast method: Linear regression model
## 
## Model Information:
## 
## Call:
## lm(formula = newCPI ~ lagCPI + lagGDP + lagM2S + lagIR + lagM2V, 
##     data = train)
## 
## Coefficients:
## (Intercept)       lagCPI       lagGDP       lagM2S        lagIR       lagM2V  
##   1.016e-02    4.306e-01   -2.303e+00   -1.581e+03    1.067e-02    1.585e-01  
## 
## 
## Error measures:
##                         ME      RMSE        MAE      MPE     MAPE      MASE
## Training set -1.433943e-18 0.1046701 0.07091936 336.8854 465.8372 0.8739501
## 
## Forecasts:
##    Point Forecast         Lo 80      Hi 80       Lo 95      Hi 95
## 1    -0.007551747 -0.1449208246 0.12981733 -0.21830017 0.20319668
## 2    -0.008377738 -0.1463501009 0.12959463 -0.22005171 0.20329623
## 3     0.034694139 -0.1032639736 0.17265225 -0.17695797 0.24634625
## 4     0.007014902 -0.1305271708 0.14455698 -0.20399893 0.21802873
## 5    -0.024601223 -0.1620429481 0.11284050 -0.23546110 0.18625866
## 6    -0.017631159 -0.1551968312 0.11993451 -0.22868120 0.19341888
## 7     0.018051187 -0.1193717325 0.15547411 -0.19277984 0.22888222
## 8     0.013059581 -0.1243934730 0.15051264 -0.19781768 0.22393684
## 9     0.036347620 -0.1014217962 0.17411704 -0.17501500 0.24771024
## 10    0.008149320 -0.1297395385 0.14603818 -0.20339654 0.21969518
## 11    0.013983746 -0.1235994257 0.15156692 -0.19709314 0.22506063
## 12   -0.000904651 -0.1383407600 0.13653146 -0.21175591 0.20994661
## 13   -0.015584128 -0.1529662779 0.12179802 -0.22635261 0.19518435
## 14    0.024789226 -0.1128113022 0.16238975 -0.18631429 0.23589274
## 15   -0.072670314 -0.2110912603 0.06575063 -0.28503249 0.13969186
## 16   -0.022667464 -0.1601203879 0.11478546 -0.23354452 0.18820960
## 17    0.003455498 -0.1340391279 0.14095012 -0.20748554 0.21439654
## 18   -0.005350452 -0.1428058384 0.13210493 -0.21623129 0.20553039
## 19    0.063306462 -0.0746849003 0.20129782 -0.14839666 0.27500958
## 20    0.002352559 -0.1349915795 0.13969670 -0.20835761 0.21306272
## 21   -0.011362224 -0.1490401947 0.12631575 -0.22258455 0.19986010
## 22   -0.007583518 -0.1449415293 0.12977449 -0.21831497 0.20314793
## 23   -0.001825194 -0.1393530602 0.13570267 -0.21281723 0.20916684
## 24   -0.002062656 -0.1395820879 0.13545678 -0.21304175 0.20891644
## 25    0.034858151 -0.1029903125 0.17270661 -0.17662574 0.24634204
## 26    0.018959377 -0.1204795692 0.15839832 -0.19496459 0.23288335
## 27   -0.014698733 -0.2189005551 0.18950309 -0.32798039 0.29858293
## 28   -0.102093772 -0.2888312523 0.08464371 -0.38858205 0.18439450
## 29   -0.119653781 -0.2598606786 0.02055312 -0.33475592 0.09544836
## 30   -0.107400412 -0.2477934031 0.03299258 -0.32278805 0.10798723
## 31    0.144483021  0.0007544557 0.28821159 -0.07602198 0.36498802
## 32    0.006797402 -0.1305527962 0.14414760 -0.20392206 0.21751686
## 33    0.093859211 -0.0469906098 0.23470903 -0.12222929 0.30994771
## 34    0.138287485 -0.0036424030 0.28021737 -0.07945803 0.35603300
## 35    0.096018475 -0.0439085375 0.23594549 -0.11865427 0.31069122
## 36    0.082464670 -0.0569179086 0.22184725 -0.13137282 0.29630216
## 37    0.066130159 -0.0724405814 0.20470090 -0.14646183 0.27872215
plot(test$newCPI~test$Quarter, col='red')
lines(mys1$mean~test$Quarter)#forecast

myf2=forecast(mylm2, as.data.frame(test))
(mys2=summary(myf2))
## 
## Forecast method: Linear regression model
## 
## Model Information:
## 
## Call:
## lm(formula = newGDP ~ lagCPI + lagGDP + lagM2S + lagIR + lagM2V, 
##     data = train)
## 
## Coefficients:
## (Intercept)       lagCPI       lagGDP       lagM2S        lagIR       lagM2V  
##   4.816e-03   -9.486e-03    8.806e-02   -6.122e+02   -1.715e-03    1.348e-02  
## 
## 
## Error measures:
##                        ME        RMSE         MAE       MPE     MAPE      MASE
## Training set 1.586973e-19 0.007090259 0.005372517 -234.9736 335.8533 0.9131277
## 
## Forecasts:
##    Point Forecast         Lo 80      Hi 80         Lo 95      Hi 95
## 1    0.0073573895 -0.0019478684 0.01666265 -0.0069185196 0.02163330
## 2    0.0038613204 -0.0054848036 0.01320744 -0.0104772844 0.01819993
## 3    0.0066916880 -0.0026534707 0.01603685 -0.0076454358 0.02102881
## 4    0.0071386161 -0.0021783604 0.01645559 -0.0071552713 0.02143250
## 5    0.0064988072 -0.0028113718 0.01580899 -0.0077846517 0.02078227
## 6    0.0079581379 -0.0013604372 0.01727671 -0.0063382020 0.02225448
## 7    0.0059755272 -0.0033333779 0.01528443 -0.0083059773 0.02025703
## 8    0.0044649210 -0.0048460254 0.01377587 -0.0098197153 0.01874956
## 9    0.0044852382 -0.0048471383 0.01381761 -0.0098322756 0.01880275
## 10   0.0058524038 -0.0034880637 0.01519287 -0.0084775230 0.02018233
## 11   0.0054120542 -0.0039077063 0.01473181 -0.0088861044 0.01971021
## 12   0.0057040415 -0.0036057572 0.01501384 -0.0085788338 0.01998692
## 13   0.0063508878 -0.0029552557 0.01565703 -0.0079263798 0.02062816
## 14   0.0045724547 -0.0047484815 0.01389339 -0.0097275076 0.01887242
## 15   0.0075729681 -0.0018035425 0.01694948 -0.0068122552 0.02195819
## 16   0.0070815060 -0.0022294317 0.01639244 -0.0072031168 0.02136613
## 17   0.0062232906 -0.0030904719 0.01553705 -0.0080656659 0.02051225
## 18   0.0055379288 -0.0037731756 0.01484903 -0.0087469498 0.01982281
## 19   0.0047224234 -0.0046249876 0.01406983 -0.0096181559 0.01906300
## 20   0.0060524337 -0.0032511349 0.01535600 -0.0082208836 0.02032575
## 21   0.0051833628 -0.0041428193 0.01450954 -0.0091246476 0.01949137
## 22   0.0064572262 -0.0028472821 0.01576173 -0.0078175328 0.02073199
## 23   0.0050810097 -0.0042350045 0.01439702 -0.0092114013 0.01937342
## 24   0.0068479446 -0.0024674982 0.01616339 -0.0074435899 0.02113948
## 25   0.0049275915 -0.0044101396 0.01426532 -0.0093981372 0.01925332
## 26   0.0022648909 -0.0071805781 0.01171036 -0.0122261267 0.01675591
## 27  -0.0009281724 -0.0147606204 0.01290428 -0.0221495906 0.02029325
## 28   0.0186710647  0.0060216355 0.03132049 -0.0007353937 0.03807752
## 29   0.0087385368 -0.0007589525 0.01823603 -0.0058322892 0.02330936
## 30   0.0096866197  0.0001765246 0.01919671 -0.0049035458 0.02427679
## 31   0.0042089597 -0.0055270842 0.01394500 -0.0107278512 0.01914577
## 32   0.0056780071 -0.0036259721 0.01498199 -0.0085959401 0.01995195
## 33   0.0045802352 -0.0049608052 0.01412128 -0.0100574058 0.01921788
## 34   0.0019526661 -0.0076615371 0.01156687 -0.0127972195 0.01670255
## 35   0.0021240524 -0.0073544778 0.01160258 -0.0124176869 0.01666579
## 36   0.0021177954 -0.0073238554 0.01155945 -0.0123673643 0.01660296
## 37   0.0028077535 -0.0065789040 0.01219441 -0.0115930368 0.01720854
plot(test$newGDP~test$Quarter, col='red')
lines(mys2$mean~test$Quarter)#forecast

myf3=forecast(mylm3, as.data.frame(test))
(mys3=summary(myf3))
## 
## Forecast method: Linear regression model
## 
## Model Information:
## 
## Call:
## lm(formula = newM2S ~ lagCPI + lagGDP + lagM2S + lagIR + lagM2V, 
##     data = train)
## 
## Coefficients:
## (Intercept)       lagCPI       lagGDP       lagM2S        lagIR       lagM2V  
##   4.402e-07    5.122e-06   -4.248e-04   -1.355e-01   -1.330e-07    3.809e-05  
## 
## 
## Error measures:
##                         ME         RMSE          MAE MPE MAPE      MASE
## Training set -1.475927e-22 4.408714e-06 3.225865e-06 Inf  Inf 0.7551521
## 
## Forecasts:
##    Point Forecast         Lo 80         Hi 80         Lo 95         Hi 95
## 1   -3.867871e-06 -9.653868e-06  1.918126e-06 -1.274461e-05  5.008870e-06
## 2   -2.120018e-06 -7.931426e-06  3.691390e-06 -1.103574e-05  6.795708e-06
## 3   -3.039104e-06 -8.849912e-06  2.771703e-06 -1.195391e-05  5.875700e-06
## 4   -3.075897e-06 -8.869181e-06  2.717386e-06 -1.196382e-05  5.812023e-06
## 5   -3.365016e-06 -9.154074e-06  2.424041e-06 -1.224645e-05  5.516419e-06
## 6   -5.370643e-06 -1.116492e-05  4.236349e-07 -1.426009e-05  3.518803e-06
## 7   -1.406915e-06 -7.195180e-06  4.381349e-06 -1.028714e-05  7.473305e-06
## 8   -2.274760e-06 -8.064295e-06  3.514774e-06 -1.115693e-05  6.607408e-06
## 9   -2.694330e-06 -8.497189e-06  3.108529e-06 -1.159694e-05  6.208281e-06
## 10  -5.510565e-06 -1.131845e-05  2.973258e-07 -1.442089e-05  3.399765e-06
## 11  -2.077284e-06 -7.872299e-06  3.717731e-06 -1.096786e-05  6.813292e-06
## 12  -3.448738e-06 -9.237558e-06  2.340083e-06 -1.232981e-05  5.432335e-06
## 13  -2.702678e-06 -8.489225e-06  3.083870e-06 -1.158026e-05  6.174909e-06
## 14  -2.102853e-06 -7.898599e-06  3.692893e-06 -1.099455e-05  6.788844e-06
## 15  -3.399385e-06 -9.229687e-06  2.430917e-06 -1.234410e-05  5.545328e-06
## 16  -2.435852e-06 -8.225381e-06  3.353677e-06 -1.131801e-05  6.446308e-06
## 17  -2.030833e-06 -7.822119e-06  3.760452e-06 -1.091569e-05  6.854021e-06
## 18  -1.457753e-06 -7.247386e-06  4.331879e-06 -1.034007e-05  7.424565e-06
## 19  -2.356103e-07 -6.047818e-06  5.576598e-06 -9.152564e-06  8.681343e-06
## 20  -2.076185e-06 -7.861131e-06  3.708762e-06 -1.095131e-05  6.798945e-06
## 21  -5.685072e-07 -6.367515e-06  5.230500e-06 -9.465209e-06  8.328195e-06
## 22  -2.751084e-06 -8.536615e-06  3.034447e-06 -1.162711e-05  6.124943e-06
## 23  -2.413272e-06 -8.205958e-06  3.379413e-06 -1.130027e-05  6.473730e-06
## 24  -4.267377e-06 -1.005971e-05  1.524953e-06 -1.315383e-05  4.619081e-06
## 25  -3.497233e-06 -9.303422e-06  2.308956e-06 -1.240495e-05  5.410486e-06
## 26  -1.297216e-06 -7.170396e-06  4.575964e-06 -1.030771e-05  7.713280e-06
## 27   3.904354e-06 -4.696644e-06  1.250535e-05 -9.291096e-06  1.709980e-05
## 28  -2.448333e-05 -3.234873e-05 -1.661793e-05 -3.655024e-05 -1.241642e-05
## 29  -6.224849e-06 -1.213038e-05 -3.193228e-07 -1.528497e-05  2.835271e-06
## 30  -7.545015e-06 -1.345838e-05 -1.631650e-06 -1.661716e-05  1.527131e-06
## 31  -5.081259e-06 -1.113512e-05  9.726003e-07 -1.436895e-05  4.206430e-06
## 32  -2.202676e-06 -7.987878e-06  3.582526e-06 -1.107820e-05  6.672845e-06
## 33  -3.966288e-06 -9.898895e-06  1.966318e-06 -1.306795e-05  5.135378e-06
## 34   3.922612e-06 -2.055487e-06  9.900711e-06 -5.248847e-06  1.309407e-05
## 35   3.961488e-06 -1.932249e-06  9.855226e-06 -5.080546e-06  1.300352e-05
## 36   4.200467e-07 -5.450759e-06  6.290853e-06 -8.586807e-06  9.426900e-06
## 37   2.021109e-06 -3.815502e-06  7.857720e-06 -6.933283e-06  1.097550e-05
plot(test$newM2S~test$Quarter, col='red')
lines(mys3$mean~test$Quarter)#forecast

myf4=forecast(mylm4, as.data.frame(test))
(mys4=summary(myf4))
## 
## Forecast method: Linear regression model
## 
## Model Information:
## 
## Call:
## lm(formula = newIR ~ lagCPI + lagGDP + lagM2S + lagIR + lagM2V, 
##     data = train)
## 
## Coefficients:
## (Intercept)       lagCPI       lagGDP       lagM2S        lagIR       lagM2V  
##  -4.498e-02    1.900e-01   -1.072e+00   -1.837e+04   -3.524e-01    1.195e+00  
## 
## 
## Error measures:
##                        ME      RMSE       MAE MPE MAPE      MASE
## Training set 2.982105e-18 0.3100453 0.2129941 NaN  Inf 0.9333106
## 
## Forecasts:
##    Point Forecast      Lo 80     Hi 80      Lo 95     Hi 95
## 1    -0.023473596 -0.4303771 0.3834299 -0.6477354 0.6007882
## 2    -0.150955814 -0.5596463 0.2577347 -0.7779592 0.4760476
## 3     0.031290794 -0.3773575 0.4399391 -0.5956478 0.6582294
## 4     0.008033257 -0.3993827 0.4154492 -0.6170147 0.6330812
## 5    -0.069833278 -0.4769520 0.3372854 -0.6944252 0.5547587
## 6    -0.032604810 -0.4400906 0.3748810 -0.6577600 0.5925504
## 7    -0.040339900 -0.4474029 0.3667231 -0.6648464 0.5841666
## 8    -0.087316360 -0.4944686 0.3198359 -0.7119598 0.5373271
## 9    -0.086195846 -0.4942852 0.3218935 -0.7122770 0.5398853
## 10   -0.127076306 -0.5355194 0.2813668 -0.7537002 0.4995476
## 11   -0.108261599 -0.5157993 0.2992761 -0.7334963 0.5169731
## 12   -0.077849001 -0.4849510 0.3292530 -0.7024154 0.5467174
## 13   -0.023120232 -0.4300624 0.3838220 -0.6474414 0.6012010
## 14   -0.125279020 -0.5328681 0.2823100 -0.7505926 0.5000346
## 15   -0.133205749 -0.5432250 0.2768135 -0.7622477 0.4958362
## 16   -0.054179520 -0.4613314 0.3529723 -0.6788224 0.5704633
## 17    0.004174698 -0.4031007 0.4114501 -0.6206577 0.6290070
## 18   -0.067924969 -0.4750841 0.3392342 -0.6925790 0.5567291
## 19   -0.017548366 -0.4262951 0.3911984 -0.6446381 0.6095414
## 20   -0.049690986 -0.4565206 0.3571386 -0.6738395 0.5744575
## 21   -0.089260588 -0.4970790 0.3185579 -0.7149261 0.5364050
## 22   -0.067859087 -0.4747298 0.3390116 -0.6920706 0.5563524
## 23   -0.058478288 -0.4658521 0.3488955 -0.6834617 0.5665051
## 24   -0.035666028 -0.4430149 0.3716828 -0.6606111 0.5892790
## 25   -0.016726813 -0.4250503 0.3915967 -0.6431671 0.6097135
## 26   -0.176520746 -0.5895554 0.2365139 -0.8101889 0.4571474
## 27   -0.433532655 -1.0384026 0.1713373 -1.3615100 0.4944447
## 28    0.221269101 -0.3318694 0.7744076 -0.6273431 1.0698813
## 29   -0.117696739 -0.5330062 0.2976127 -0.7548548 0.5194613
## 30   -0.067206836 -0.4830675 0.3486538 -0.7052106 0.5707969
## 31    0.057502938 -0.3682381 0.4832440 -0.5956590 0.7106649
## 32   -0.050339630 -0.4571872 0.3565079 -0.6745156 0.5738364
## 33    0.050403901 -0.3668100 0.4676178 -0.5896758 0.6904836
## 34    0.026705760 -0.3937074 0.4471189 -0.6182822 0.6716938
## 35   -0.084459017 -0.4989394 0.3300214 -0.7203451 0.5514271
## 36   -0.217278257 -0.6301460 0.1955895 -0.8506902 0.4161337
## 37   -0.133718886 -0.5441818 0.2767441 -0.7634415 0.4960038
plot(test$newIR~test$Quarter, col='red')
lines(mys4$mean~test$Quarter)#forecast

myf5=forecast(mylm5, as.data.frame(test))
(mys5=summary(myf5))
## 
## Forecast method: Linear regression model
## 
## Model Information:
## 
## Call:
## lm(formula = newM2V ~ lagCPI + lagGDP + lagM2S + lagIR + lagM2V, 
##     data = train)
## 
## Coefficients:
## (Intercept)       lagCPI       lagGDP       lagM2S        lagIR       lagM2V  
##   2.284e-02   -5.501e-02   -7.355e+00   -1.130e+04   -3.399e-02    1.001e+00  
## 
## 
## Error measures:
##                        ME      RMSE        MAE MPE MAPE      MASE
## Training set 5.154949e-18 0.1140845 0.08456468 NaN  Inf 0.8130181
## 
## Forecasts:
##    Point Forecast      Lo 80       Hi 80      Lo 95      Hi 95
## 1   -0.0305074369 -0.1802320  0.11921712 -0.2602114 0.19919648
## 2   -0.0459356387 -0.1963177  0.10444647 -0.2766483 0.18477707
## 3   -0.0228963496 -0.1732629  0.12747022 -0.2535852 0.20779253
## 4   -0.0159083116 -0.1658214  0.13400480 -0.2459015 0.21408488
## 5   -0.0314353319 -0.1812391  0.11836841 -0.2612607 0.19839006
## 6   -0.0533682434 -0.2033071  0.09657059 -0.2834009 0.17666441
## 7    0.0001993082 -0.1495839  0.14998255 -0.2295946 0.22999326
## 8   -0.0397793989 -0.1895955  0.11003669 -0.2696237 0.19006494
## 9   -0.0511863989 -0.2013473  0.09897451 -0.2815597 0.17918695
## 10  -0.0896086053 -0.2398997  0.06068249 -0.3201817 0.14096447
## 11  -0.0234791806 -0.1734371  0.12647873 -0.2535411 0.20658274
## 12  -0.0457981713 -0.1955958  0.10399945 -0.2756142 0.18401783
## 13  -0.0190703084 -0.1688091  0.13066850 -0.2487961 0.21065547
## 14  -0.0362383241 -0.1862152  0.11373850 -0.2663293 0.19385262
## 15  -0.0143386351 -0.1652097  0.13653240 -0.2458015 0.21712418
## 16  -0.0025403776 -0.1523563  0.14727557 -0.2323845 0.22730374
## 17  -0.0061458486 -0.1560072  0.14371555 -0.2360597 0.22376800
## 18  -0.0047253463 -0.1545440  0.14509328 -0.2345736 0.22512289
## 19   0.0048883311 -0.1455145  0.15529115 -0.2258561 0.23563281
## 20  -0.0112739210 -0.1609713  0.13842346 -0.2409361 0.21838829
## 21   0.0080010537 -0.1420602  0.15806229 -0.2222194 0.23822149
## 22  -0.0202080677 -0.1699206  0.12950443 -0.2498935 0.20947734
## 23  -0.0313866628 -0.1812843  0.11851097 -0.2613561 0.19858277
## 24  -0.0460454923 -0.1959339  0.10384294 -0.2760008 0.18390984
## 25  -0.0598716408 -0.2101187  0.09037542 -0.2903772 0.17063389
## 26  -0.0555165278 -0.2074971  0.09646407 -0.2886816 0.17764855
## 27  -0.0136628050 -0.2362313  0.20890568 -0.3551222 0.32779656
## 28  -0.2824754739 -0.4860088 -0.07894214 -0.5947316 0.02978061
## 29  -0.0526722652 -0.2054899  0.10014536 -0.2871215 0.18177696
## 30  -0.0664275810 -0.2194480  0.08659287 -0.3011880 0.16833282
## 31  -0.1082036180 -0.2648597  0.04845242 -0.3485417 0.13213442
## 32  -0.0196179080 -0.1693219  0.13008607 -0.2492903 0.21005444
## 33  -0.0748619807 -0.2283804  0.07865639 -0.3103863 0.16066232
## 34   0.0466399259 -0.1080557  0.20133551 -0.1906904 0.28397027
## 35   0.0523509530 -0.1001616  0.20486352 -0.1816303 0.28633216
## 36  -0.0215880259 -0.1735072  0.13033114 -0.2546589 0.21148280
## 37   0.0244793786 -0.1265549  0.17551368 -0.2072339 0.25619267
plot(test$newM2V~test$Quarter, col='red')
lines(mys5$mean~test$Quarter)#forecast