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'
setwd("C:/Users/lfult/OneDrive - bc.edu/_Courses/Boston College/Predictive analytics")
df <- read.csv("df_train_moneysupply.csv")
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
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)
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
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
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),]
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>
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),]
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)
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
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