Open AkhilaMarkunda opened 4 months ago
CDA_HW-2.pdf Hence the multiplicative Holt-Winters Last Forecast Value is 343007.08 and additive Holt-Winters Last Forecast Value is 302394.95
amarkund-CDA-hw-3 - Jupyter Notebook.pdf The forecast obtained is 144451.4
HW-4
library(reprex)
#> Warning: package 'reprex' was built under R version 4.3.3
library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.3.3
library(vars)
#> Warning: package 'vars' was built under R version 4.3.3
#> Loading required package: MASS
#> Loading required package: strucchange
#> Warning: package 'strucchange' was built under R version 4.3.3
#> Loading required package: zoo
#>
#> Attaching package: 'zoo'
#> The following objects are masked from 'package:base':
#>
#> as.Date, as.Date.numeric
#> Loading required package: sandwich
#> Warning: package 'sandwich' was built under R version 4.3.3
#> Loading required package: urca
#> Warning: package 'urca' was built under R version 4.3.3
#> Loading required package: lmtest
#> Warning: package 'lmtest' was built under R version 4.3.3
library(BigVAR)
#> Warning: package 'BigVAR' was built under R version 4.3.3
#> Loading required package: lattice
#> Warning: package 'lattice' was built under R version 4.3.3
Buss_App <- read.csv("C:/Users/Akhila Markunda/Downloads/Business_Applications.csv", skip = 7)
print(head(Buss_App))
#> Period Value
#> 1 Jan-2004 NA
#> 2 Feb-2004 NA
#> 3 Mar-2004 NA
#> 4 Apr-2004 NA
#> 5 May-2004 NA
#> 6 Jun-2004 NA
Buss_App$Value <- as.numeric(as.character(Buss_App$Value))
sum(is.na(Buss_App$Value))
#> [1] 15
library(tseries)
#> Warning: package 'tseries' was built under R version 4.3.3
#> Registered S3 method overwritten by 'quantmod':
#> method from
#> as.zoo.data.frame zoo
library(lattice)
Buss_App <- Buss_App[!is.na(Buss_App$Value), ]
Buss_App_time_series <- ts(Buss_App$Value, start=c(2004, 1), frequency=12)
Buss_App_plan_wages <- read.csv("C:/Users/Akhila Markunda/Downloads/Business_Applications_with_planned_wages.csv", skip = 7)
print(head(Buss_App_plan_wages))
#> Period Value
#> 1 Jan-2004 NA
#> 2 Feb-2004 NA
#> 3 Mar-2004 NA
#> 4 Apr-2004 NA
#> 5 May-2004 NA
#> 6 Jun-2004 NA
Buss_App_plan_wages$Value <- as.numeric(as.character(Buss_App_plan_wages$Value))
sum(is.na(Buss_App_plan_wages$Value))
#> [1] 15
library(tseries)
Buss_App_plan_wages <- Buss_App_plan_wages[!is.na(Buss_App_plan_wages$Value), ]
Buss_App_plan_wages_time_series <- ts(Buss_App_plan_wages$Value, start=c(2004, 1), frequency=12)
Buss_form_four_quarters <- read.csv("C:/Users/Akhila Markunda/Downloads/Business_formations_within_four_quarters.csv", skip = 7)
print(head(Buss_form_four_quarters))
#> Period Value
#> 1 Jan-2004 NA
#> 2 Feb-2004 NA
#> 3 Mar-2004 NA
#> 4 Apr-2004 NA
#> 5 May-2004 NA
#> 6 Jun-2004 NA
Buss_form_four_quarters$Value <- as.numeric(as.character(Buss_form_four_quarters$Value))
sum(is.na(Buss_form_four_quarters$Value))
#> [1] 54
Buss_form_four_quarters <- Buss_form_four_quarters[!is.na(Buss_form_four_quarters$Value), ]
Buss_form_four_quarters_time_series <- ts(Buss_form_four_quarters$Value, start=c(2004, 1), frequency=12)
Buss_Form_eight_quarters <- read.csv("C:/Users/Akhila Markunda/Downloads/Business_Formations_within_eight_quarters.csv", skip = 7)
print(head(Buss_Form_eight_quarters))
#> Period Value
#> 1 Jan-2004 NA
#> 2 Feb-2004 NA
#> 3 Mar-2004 NA
#> 4 Apr-2004 NA
#> 5 May-2004 NA
#> 6 Jun-2004 NA
Buss_Form_eight_quarters$Value <- as.numeric(as.character(Buss_Form_eight_quarters$Value))
sum(is.na(Buss_Form_eight_quarters$Value))
#> [1] 66
Buss_Form_eight_quarters <- Buss_Form_eight_quarters[!is.na(Buss_Form_eight_quarters$Value), ]
Buss_Form_eight_quarters_time_series <- ts(Buss_Form_eight_quarters$Value, start=c(2004, 1), frequency=12)
plot(Buss_App_time_series, main="Business Applications", xlab="Year", ylab="No of Business applications")
plot(Buss_App_plan_wages_time_series, main="Business appications with planned wages", xlab="Year", ylab="No of Business appications")
plot(Buss_form_four_quarters_time_series, main="Business formations within four quarters", xlab="Year", ylab="No of business formed")
plot(Buss_Form_eight_quarters_time_series, main="Business formations within eight quarters", xlab="Year", ylab="No of business formed")
dc_Buss_App <- stl(Buss_App_time_series, s.window="periodic")
plot(dc_Buss_App)
dc_Buss_App_plan_wages <- stl(Buss_App_plan_wages_time_series, s.window="periodic")
plot(dc_Buss_App_plan_wages)
dc_Buss_form_four_quarters <- stl(Buss_form_four_quarters_time_series, s.window="periodic")
plot(dc_Buss_form_four_quarters)
dc_Buss_Form_eight_quarters <- stl(Buss_Form_eight_quarters_time_series, s.window="periodic")
plot(dc_Buss_Form_eight_quarters)
adf.test(Buss_App_time_series)
#>
#> Augmented Dickey-Fuller Test
#>
#> data: Buss_App_time_series
#> Dickey-Fuller = -1.5293, Lag order = 6, p-value = 0.7738
#> alternative hypothesis: stationary
adf.test(Buss_App_plan_wages_time_series)
#>
#> Augmented Dickey-Fuller Test
#>
#> data: Buss_App_plan_wages_time_series
#> Dickey-Fuller = -1.4175, Lag order = 6, p-value = 0.8208
#> alternative hypothesis: stationary
adf.test(Buss_form_four_quarters_time_series)
#>
#> Augmented Dickey-Fuller Test
#>
#> data: Buss_form_four_quarters_time_series
#> Dickey-Fuller = -1.6219, Lag order = 5, p-value = 0.7344
#> alternative hypothesis: stationary
adf.test(Buss_Form_eight_quarters_time_series)
#>
#> Augmented Dickey-Fuller Test
#>
#> data: Buss_Form_eight_quarters_time_series
#> Dickey-Fuller = -1.1711, Lag order = 5, p-value = 0.9087
#> alternative hypothesis: stationary
library(forecast)
#> Warning: package 'forecast' was built under R version 4.3.3
fit_Buss_App <- auto.arima(Buss_App_time_series)
summary(fit_Buss_App)
#> Series: Buss_App_time_series
#> ARIMA(1,1,1)(0,0,2)[12] with drift
#>
#> Coefficients:
#> ar1 ma1 sma1 sma2 drift
#> 0.5020 -0.8008 -0.0899 -0.0952 1139.3624
#> s.e. 0.1019 0.0672 0.0656 0.0621 470.5771
#>
#> sigma^2 = 471836909: log likelihood = -2689.37
#> AIC=5390.75 AICc=5391.12 BIC=5411.53
#>
#> Training set error measures:
#> ME RMSE MAE MPE MAPE MASE
#> Training set 142.188 21445.09 11532.16 -0.4730759 4.133808 0.4593372
#> ACF1
#> Training set -0.006783182
fit_Buss_App_plan_wages <- auto.arima(Buss_App_plan_wages_time_series)
summary(fit_Buss_App_plan_wages)
#> Series: Buss_App_plan_wages_time_series
#> ARIMA(3,1,3)(2,0,1)[12]
#>
#> Coefficients:
#> ar1 ar2 ar3 ma1 ma2 ma3 sar1 sar2
#> 1.1327 -0.6873 -0.1553 -1.4891 1.0921 -0.1926 0.4632 -0.3088
#> s.e. 0.2425 0.3157 0.1903 0.2419 0.3533 0.1996 0.1670 0.0697
#> sma1
#> -0.3858
#> s.e. 0.1697
#>
#> sigma^2 = 12698298: log likelihood = -2261.84
#> AIC=4543.67 AICc=4544.65 BIC=4578.31
#>
#> Training set error measures:
#> ME RMSE MAE MPE MAPE MASE
#> Training set -176.3733 3487.478 2161.347 -0.6737667 4.300286 0.4500156
#> ACF1
#> Training set 0.009434826
fit_Buss_form_four_quarters <- auto.arima(Buss_form_four_quarters_time_series)
summary(fit_Buss_form_four_quarters)
#> Series: Buss_form_four_quarters_time_series
#> ARIMA(0,1,4)(2,0,1)[12] with drift
#>
#> Coefficients:
#> ma1 ma2 ma3 ma4 sar1 sar2 sma1 drift
#> -0.4811 0.0131 -0.0870 -0.0867 0.6436 -0.3238 -0.5663 -46.1638
#> s.e. 0.0757 0.0846 0.0839 0.0743 0.1597 0.0875 0.1515 28.4265
#>
#> sigma^2 = 2550661: log likelihood = -1730.35
#> AIC=3478.7 AICc=3479.66 BIC=3508.25
#>
#> Training set error measures:
#> ME RMSE MAE MPE MAPE MASE ACF1
#> Training set 12.50206 1560.36 1028.125 -0.2659195 4.059251 0.5346717 0.02252801
fit_Buss_Form_eight_quarters <- auto.arima(Buss_Form_eight_quarters_time_series)
summary(fit_Buss_Form_eight_quarters)
#> Series: Buss_Form_eight_quarters_time_series
#> ARIMA(2,1,2)
#>
#> Coefficients:
#> ar1 ar2 ma1 ma2
#> 0.7050 0.1345 -1.6178 0.7212
#> s.e. 0.1064 0.1015 0.0789 0.0719
#>
#> sigma^2 = 2332055: log likelihood = -1617.4
#> AIC=3244.79 AICc=3245.13 BIC=3260.9
#>
#> Training set error measures:
#> ME RMSE MAE MPE MAPE MASE
#> Training set -18.92707 1506.441 1018.508 -0.2047401 3.250815 0.5147627
#> ACF1
#> Training set 0.06751004
checkresiduals(fit_Buss_App)
#>
#> Ljung-Box test
#>
#> data: Residuals from ARIMA(1,1,1)(0,0,2)[12] with drift
#> Q* = 33.127, df = 20, p-value = 0.03267
#>
#> Model df: 4. Total lags used: 24
checkresiduals(fit_Buss_App_plan_wages)
#>
#> Ljung-Box test
#>
#> data: Residuals from ARIMA(3,1,3)(2,0,1)[12]
#> Q* = 9.4945, df = 15, p-value = 0.8503
#>
#> Model df: 9. Total lags used: 24
checkresiduals(fit_Buss_form_four_quarters)
#>
#> Ljung-Box test
#>
#> data: Residuals from ARIMA(0,1,4)(2,0,1)[12] with drift
#> Q* = 14.07, df = 17, p-value = 0.6621
#>
#> Model df: 7. Total lags used: 24
checkresiduals(fit_Buss_Form_eight_quarters)
#>
#> Ljung-Box test
#>
#> data: Residuals from ARIMA(2,1,2)
#> Q* = 18.357, df = 20, p-value = 0.5639
#>
#> Model df: 4. Total lags used: 24
acf(Buss_App_time_series, main="Business Applications ACF")
acf(Buss_App_plan_wages_time_series, main="Business Applications with planned wages ACF")
acf(Buss_form_four_quarters_time_series, main="Business formations within four quarters ACF")
acf(Buss_Form_eight_quarters_time_series, main="Business formations within eight quarters ACF")
pacf(Buss_App_time_series, main="Business Applications PACF")
pacf(Buss_App_plan_wages_time_series, main="Business Applications with planned wages PACF")
pacf(Buss_form_four_quarters_time_series, main="Business formations within four quarters PACF")
pacf(Buss_Form_eight_quarters_time_series, main="Business formations within eight quarters PACF")
min_length <- min(length(Buss_App_time_series), length(Buss_App_plan_wages_time_series), length(Buss_form_four_quarters_time_series), length(Buss_Form_eight_quarters_time_series))
Buss_App_time_series_trim <- Buss_App_time_series[1:min_length]
Buss_App_plan_wages_time_series_trim <- Buss_App_plan_wages_time_series[1:min_length]
Buss_form_four_quarters_time_series_trim <- Buss_form_four_quarters_time_series[1:min_length]
Buss_Form_eight_quarters_time_series_trim <- Buss_Form_eight_quarters_time_series[1:min_length]
data_merged <- data.frame(Buss_App = Buss_App_time_series_trim,
Buss_App_plan_wages = Buss_App_plan_wages_time_series_trim,
Buss_form_four_quarters = Buss_form_four_quarters_time_series_trim,
Buss_Form_eight_quarters = Buss_Form_eight_quarters_time_series_trim)
merged_time_series <- ts(data_merged, start=c(2004, 1), frequency=12)
Model_var_1 <- VAR(merged_time_series, p=1, type="both")
summary(Model_var_1)
#>
#> VAR Estimation Results:
#> =========================
#> Endogenous variables: Buss_App, Buss_App_plan_wages, Buss_form_four_quarters, Buss_Form_eight_quarters
#> Deterministic variables: both
#> Sample size: 185
#> Log Likelihood: -6271.608
#> Roots of the characteristic polynomial:
#> 0.9466 0.9466 0.8044 0.4783
#> Call:
#> VAR(y = merged_time_series, p = 1, type = "both")
#>
#>
#> Estimation results for equation Buss_App:
#> =========================================
#> Buss_App = Buss_App.l1 + Buss_App_plan_wages.l1 + Buss_form_four_quarters.l1 + Buss_Form_eight_quarters.l1 + const + trend
#>
#> Estimate Std. Error t value Pr(>|t|)
#> Buss_App.l1 3.553e-01 9.107e-02 3.901 0.000135 ***
#> Buss_App_plan_wages.l1 1.301e+00 3.069e-01 4.240 3.58e-05 ***
#> Buss_form_four_quarters.l1 -5.949e+00 3.642e+00 -1.633 0.104136
#> Buss_Form_eight_quarters.l1 4.249e+00 3.169e+00 1.341 0.181766
#> const 6.855e+04 1.128e+04 6.080 7.08e-09 ***
#> trend 4.276e+02 9.509e+01 4.497 1.23e-05 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#>
#> Residual standard error: 13170 on 179 degrees of freedom
#> Multiple R-Squared: 0.8197, Adjusted R-squared: 0.8147
#> F-statistic: 162.8 on 5 and 179 DF, p-value: < 2.2e-16
#>
#>
#> Estimation results for equation Buss_App_plan_wages:
#> ====================================================
#> Buss_App_plan_wages = Buss_App.l1 + Buss_App_plan_wages.l1 + Buss_form_four_quarters.l1 + Buss_Form_eight_quarters.l1 + const + trend
#>
#> Estimate Std. Error t value Pr(>|t|)
#> Buss_App.l1 -1.328e-01 2.216e-02 -5.995 1.10e-08 ***
#> Buss_App_plan_wages.l1 1.167e+00 7.467e-02 15.633 < 2e-16 ***
#> Buss_form_four_quarters.l1 -1.830e+00 8.861e-01 -2.065 0.04034 *
#> Buss_Form_eight_quarters.l1 1.553e+00 7.712e-01 2.013 0.04557 *
#> const 1.606e+04 2.744e+03 5.853 2.26e-08 ***
#> trend 6.428e+01 2.314e+01 2.778 0.00605 **
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#>
#> Residual standard error: 3204 on 179 degrees of freedom
#> Multiple R-Squared: 0.947, Adjusted R-squared: 0.9455
#> F-statistic: 639.8 on 5 and 179 DF, p-value: < 2.2e-16
#>
#>
#> Estimation results for equation Buss_form_four_quarters:
#> ========================================================
#> Buss_form_four_quarters = Buss_App.l1 + Buss_App_plan_wages.l1 + Buss_form_four_quarters.l1 + Buss_Form_eight_quarters.l1 + const + trend
#>
#> Estimate Std. Error t value Pr(>|t|)
#> Buss_App.l1 -0.07367 0.01062 -6.939 6.97e-11 ***
#> Buss_App_plan_wages.l1 0.13629 0.03577 3.810 0.000191 ***
#> Buss_form_four_quarters.l1 -0.12598 0.42454 -0.297 0.767011
#> Buss_Form_eight_quarters.l1 0.86424 0.36948 2.339 0.020437 *
#> const 9270.40989 1314.46294 7.053 3.69e-11 ***
#> trend 38.88801 11.08461 3.508 0.000570 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#>
#> Residual standard error: 1535 on 179 degrees of freedom
#> Multiple R-Squared: 0.8772, Adjusted R-squared: 0.8737
#> F-statistic: 255.6 on 5 and 179 DF, p-value: < 2.2e-16
#>
#>
#> Estimation results for equation Buss_Form_eight_quarters:
#> =========================================================
#> Buss_Form_eight_quarters = Buss_App.l1 + Buss_App_plan_wages.l1 + Buss_form_four_quarters.l1 + Buss_Form_eight_quarters.l1 + const + trend
#>
#> Estimate Std. Error t value Pr(>|t|)
#> Buss_App.l1 -8.276e-02 1.220e-02 -6.783 1.65e-10 ***
#> Buss_App_plan_wages.l1 1.545e-01 4.111e-02 3.758 0.000232 ***
#> Buss_form_four_quarters.l1 -1.048e+00 4.879e-01 -2.148 0.033091 *
#> Buss_Form_eight_quarters.l1 1.778e+00 4.246e-01 4.187 4.43e-05 ***
#> const 1.028e+04 1.511e+03 6.808 1.44e-10 ***
#> trend 4.742e+01 1.274e+01 3.723 0.000264 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#>
#> Residual standard error: 1764 on 179 degrees of freedom
#> Multiple R-Squared: 0.8441, Adjusted R-squared: 0.8397
#> F-statistic: 193.8 on 5 and 179 DF, p-value: < 2.2e-16
#>
#>
#>
#> Covariance matrix of residuals:
#> Buss_App Buss_App_plan_wages Buss_form_four_quarters
#> Buss_App 173357268 35364325 18556387
#> Buss_App_plan_wages 35364325 10264311 4468707
#> Buss_form_four_quarters 18556387 4468707 2355903
#> Buss_Form_eight_quarters 21480529 5141675 2691485
#> Buss_Form_eight_quarters
#> Buss_App 21480529
#> Buss_App_plan_wages 5141675
#> Buss_form_four_quarters 2691485
#> Buss_Form_eight_quarters 3111122
#>
#> Correlation matrix of residuals:
#> Buss_App Buss_App_plan_wages Buss_form_four_quarters
#> Buss_App 1.0000 0.8384 0.9182
#> Buss_App_plan_wages 0.8384 1.0000 0.9087
#> Buss_form_four_quarters 0.9182 0.9087 1.0000
#> Buss_Form_eight_quarters 0.9249 0.9099 0.9942
#> Buss_Form_eight_quarters
#> Buss_App 0.9249
#> Buss_App_plan_wages 0.9099
#> Buss_form_four_quarters 0.9942
#> Buss_Form_eight_quarters 1.0000
selection_lag <- VARselect(merged_time_series, lag.max=10, type="both")
lags_optimal <- selection_lag$selection["AIC(n)"]
Model_var_p <- VAR(merged_time_series, p=lags_optimal, type="both")
summary(Model_var_p)
#>
#> VAR Estimation Results:
#> =========================
#> Endogenous variables: Buss_App, Buss_App_plan_wages, Buss_form_four_quarters, Buss_Form_eight_quarters
#> Deterministic variables: both
#> Sample size: 183
#> Log Likelihood: -6127.296
#> Roots of the characteristic polynomial:
#> 0.9756 0.9756 0.8972 0.6458 0.6458 0.619 0.619 0.499 0.499 0.4324 0.4324 0.3623
#> Call:
#> VAR(y = merged_time_series, p = lags_optimal, type = "both")
#>
#>
#> Estimation results for equation Buss_App:
#> =========================================
#> Buss_App = Buss_App.l1 + Buss_App_plan_wages.l1 + Buss_form_four_quarters.l1 + Buss_Form_eight_quarters.l1 + Buss_App.l2 + Buss_App_plan_wages.l2 + Buss_form_four_quarters.l2 + Buss_Form_eight_quarters.l2 + Buss_App.l3 + Buss_App_plan_wages.l3 + Buss_form_four_quarters.l3 + Buss_Form_eight_quarters.l3 + const + trend
#>
#> Estimate Std. Error t value Pr(>|t|)
#> Buss_App.l1 2.102e-01 1.873e-01 1.122 0.2634
#> Buss_App_plan_wages.l1 9.352e-01 6.472e-01 1.445 0.1503
#> Buss_form_four_quarters.l1 3.385e+00 5.393e+00 0.628 0.5310
#> Buss_Form_eight_quarters.l1 -4.921e+00 5.007e+00 -0.983 0.3272
#> Buss_App.l2 4.497e-02 2.141e-01 0.210 0.8339
#> Buss_App_plan_wages.l2 -1.231e+00 9.212e-01 -1.336 0.1832
#> Buss_form_four_quarters.l2 -1.239e+00 6.554e+00 -0.189 0.8502
#> Buss_Form_eight_quarters.l2 5.436e+00 6.028e+00 0.902 0.3684
#> Buss_App.l3 4.251e-01 1.901e-01 2.236 0.0267 *
#> Buss_App_plan_wages.l3 8.949e-01 6.609e-01 1.354 0.1775
#> Buss_form_four_quarters.l3 -6.860e+00 5.629e+00 -1.219 0.2247
#> Buss_Form_eight_quarters.l3 3.577e+00 5.317e+00 0.673 0.5021
#> const 2.288e+04 1.180e+04 1.938 0.0543 .
#> trend 2.070e+02 9.480e+01 2.183 0.0304 *
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#>
#> Residual standard error: 11290 on 169 degrees of freedom
#> Multiple R-Squared: 0.8726, Adjusted R-squared: 0.8628
#> F-statistic: 89.06 on 13 and 169 DF, p-value: < 2.2e-16
#>
#>
#> Estimation results for equation Buss_App_plan_wages:
#> ====================================================
#> Buss_App_plan_wages = Buss_App.l1 + Buss_App_plan_wages.l1 + Buss_form_four_quarters.l1 + Buss_Form_eight_quarters.l1 + Buss_App.l2 + Buss_App_plan_wages.l2 + Buss_form_four_quarters.l2 + Buss_Form_eight_quarters.l2 + Buss_App.l3 + Buss_App_plan_wages.l3 + Buss_form_four_quarters.l3 + Buss_Form_eight_quarters.l3 + const + trend
#>
#> Estimate Std. Error t value Pr(>|t|)
#> Buss_App.l1 -0.06864 0.04417 -1.554 0.1220
#> Buss_App_plan_wages.l1 1.20459 0.15257 7.895 3.5e-13 ***
#> Buss_form_four_quarters.l1 0.56136 1.27121 0.442 0.6593
#> Buss_Form_eight_quarters.l1 -1.75933 1.18039 -1.490 0.1380
#> Buss_App.l2 -0.05152 0.05047 -1.021 0.3088
#> Buss_App_plan_wages.l2 -0.25842 0.21717 -1.190 0.2357
#> Buss_form_four_quarters.l2 -0.50598 1.54496 -0.328 0.7437
#> Buss_Form_eight_quarters.l2 1.93413 1.42111 1.361 0.1753
#> Buss_App.l3 0.06589 0.04482 1.470 0.1434
#> Buss_App_plan_wages.l3 0.02024 0.15579 0.130 0.8968
#> Buss_form_four_quarters.l3 -1.42873 1.32706 -1.077 0.2832
#> Buss_Form_eight_quarters.l3 1.24073 1.25348 0.990 0.3237
#> const 5423.75181 2782.28995 1.949 0.0529 .
#> trend 10.43747 22.34870 0.467 0.6411
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#>
#> Residual standard error: 2661 on 169 degrees of freedom
#> Multiple R-Squared: 0.9642, Adjusted R-squared: 0.9614
#> F-statistic: 350 on 13 and 169 DF, p-value: < 2.2e-16
#>
#>
#> Estimation results for equation Buss_form_four_quarters:
#> ========================================================
#> Buss_form_four_quarters = Buss_App.l1 + Buss_App_plan_wages.l1 + Buss_form_four_quarters.l1 + Buss_Form_eight_quarters.l1 + Buss_App.l2 + Buss_App_plan_wages.l2 + Buss_form_four_quarters.l2 + Buss_Form_eight_quarters.l2 + Buss_App.l3 + Buss_App_plan_wages.l3 + Buss_form_four_quarters.l3 + Buss_Form_eight_quarters.l3 + const + trend
#>
#> Estimate Std. Error t value Pr(>|t|)
#> Buss_App.l1 -0.04248 0.02089 -2.033 0.0436 *
#> Buss_App_plan_wages.l1 0.11415 0.07218 1.582 0.1156
#> Buss_form_four_quarters.l1 0.73690 0.60134 1.225 0.2221
#> Buss_Form_eight_quarters.l1 -0.43590 0.55838 -0.781 0.4361
#> Buss_App.l2 -0.02005 0.02388 -0.840 0.4022
#> Buss_App_plan_wages.l2 -0.16296 0.10273 -1.586 0.1145
#> Buss_form_four_quarters.l2 -0.16705 0.73084 -0.229 0.8195
#> Buss_Form_eight_quarters.l2 0.86036 0.67225 1.280 0.2024
#> Buss_App.l3 0.02097 0.02120 0.989 0.3240
#> Buss_App_plan_wages.l3 0.10233 0.07370 1.389 0.1668
#> Buss_form_four_quarters.l3 -0.42035 0.62777 -0.670 0.5040
#> Buss_Form_eight_quarters.l3 0.32359 0.59295 0.546 0.5860
#> const 4248.09207 1316.15741 3.228 0.0015 **
#> trend 19.02015 10.57202 1.799 0.0738 .
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#>
#> Residual standard error: 1259 on 169 degrees of freedom
#> Multiple R-Squared: 0.9181, Adjusted R-squared: 0.9118
#> F-statistic: 145.8 on 13 and 169 DF, p-value: < 2.2e-16
#>
#>
#> Estimation results for equation Buss_Form_eight_quarters:
#> =========================================================
#> Buss_Form_eight_quarters = Buss_App.l1 + Buss_App_plan_wages.l1 + Buss_form_four_quarters.l1 + Buss_Form_eight_quarters.l1 + Buss_App.l2 + Buss_App_plan_wages.l2 + Buss_form_four_quarters.l2 + Buss_Form_eight_quarters.l2 + Buss_App.l3 + Buss_App_plan_wages.l3 + Buss_form_four_quarters.l3 + Buss_Form_eight_quarters.l3 + const + trend
#>
#> Estimate Std. Error t value Pr(>|t|)
#> Buss_App.l1 -0.04738 0.02386 -1.986 0.04867 *
#> Buss_App_plan_wages.l1 0.14458 0.08242 1.754 0.08121 .
#> Buss_form_four_quarters.l1 0.07016 0.68670 0.102 0.91874
#> Buss_Form_eight_quarters.l1 0.15391 0.63764 0.241 0.80956
#> Buss_App.l2 -0.02284 0.02727 -0.838 0.40329
#> Buss_App_plan_wages.l2 -0.20512 0.11731 -1.748 0.08220 .
#> Buss_form_four_quarters.l2 -0.18700 0.83458 -0.224 0.82297
#> Buss_Form_eight_quarters.l2 1.02730 0.76767 1.338 0.18263
#> Buss_App.l3 0.02601 0.02421 1.074 0.28429
#> Buss_App_plan_wages.l3 0.11699 0.08416 1.390 0.16631
#> Buss_form_four_quarters.l3 -0.67886 0.71687 -0.947 0.34500
#> Buss_Form_eight_quarters.l3 0.51910 0.67712 0.767 0.44437
#> const 4463.64716 1502.97251 2.970 0.00341 **
#> trend 22.33878 12.07260 1.850 0.06601 .
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#>
#> Residual standard error: 1437 on 169 degrees of freedom
#> Multiple R-Squared: 0.8975, Adjusted R-squared: 0.8896
#> F-statistic: 113.8 on 13 and 169 DF, p-value: < 2.2e-16
#>
#>
#>
#> Covariance matrix of residuals:
#> Buss_App Buss_App_plan_wages Buss_form_four_quarters
#> Buss_App 127421508 23750122 12902690
#> Buss_App_plan_wages 23750122 7080967 2909935
#> Buss_form_four_quarters 12902690 2909935 1584541
#> Buss_Form_eight_quarters 14866957 3315591 1794074
#> Buss_Form_eight_quarters
#> Buss_App 14866957
#> Buss_App_plan_wages 3315591
#> Buss_form_four_quarters 1794074
#> Buss_Form_eight_quarters 2066283
#>
#> Correlation matrix of residuals:
#> Buss_App Buss_App_plan_wages Buss_form_four_quarters
#> Buss_App 1.0000 0.7907 0.9080
#> Buss_App_plan_wages 0.7907 1.0000 0.8687
#> Buss_form_four_quarters 0.9080 0.8687 1.0000
#> Buss_Form_eight_quarters 0.9162 0.8668 0.9915
#> Buss_Form_eight_quarters
#> Buss_App 0.9162
#> Buss_App_plan_wages 0.8668
#> Buss_form_four_quarters 0.9915
#> Buss_Form_eight_quarters 1.0000
AIC_var_1 <- AIC(Model_var_1)
BIC_var_1 <- BIC(Model_var_1)
AIC_var_p <- AIC(Model_var_p)
BIC_var_p <- BIC(Model_var_p)
cat("VAR(1) AIC", AIC_var_1)
#> VAR(1) AIC 12591.22
cat(" VAR(1) BIC", BIC_var_1)
#> VAR(1) BIC 12668.5
cat("VAR(p) AIC", AIC_var_p)
#> VAR(p) AIC 12366.59
cat(" VAR(p) BIC", BIC_var_p)
#> VAR(p) BIC 12546.32
if(AIC_var_1 < AIC_var_p && BIC_var_1 < BIC_var_p) {
cat("Based on AIC and BIC VAR(1) is preferred")
} else if(AIC_var_p < AIC_var_1 && BIC_var_p < BIC_var_1) {
cat("Based on AIC and BIC VAR(p) is preferred")
} else {
cat("Additional examinations and evaluations might be required as the decision is not straightforward")
}
#> Based on AIC and BIC VAR(p) is preferred
forecast_var_1 <- predict(Model_var_1, n.ahead=1)
forecast_var_p <- predict(Model_var_p, n.ahead=1)
print(forecast_var_1)
#> $Buss_App
#> fcst lower upper CI
#> Buss_App.fcst 299274.1 273468.2 325080 25805.91
#>
#> $Buss_App_plan_wages
#> fcst lower upper CI
#> Buss_App_plan_wages.fcst 36810.85 30531.52 43090.17 6279.325
#>
#> $Buss_form_four_quarters
#> fcst lower upper CI
#> Buss_form_four_quarters.fcst 22885.69 19877.35 25894.03 3008.339
#>
#> $Buss_Form_eight_quarters
#> fcst lower upper CI
#> Buss_Form_eight_quarters.fcst 29345.83 25888.77 32802.89 3457.057
print(forecast_var_p)
#> $Buss_App
#> fcst lower upper CI
#> Buss_App.fcst 306694.1 284569.8 328818.4 22124.3
#>
#> $Buss_App_plan_wages
#> fcst lower upper CI
#> Buss_App_plan_wages.fcst 39528.92 34313.44 44744.4 5215.481
#>
#> $Buss_form_four_quarters
#> fcst lower upper CI
#> Buss_form_four_quarters.fcst 23813.46 21346.29 26280.64 2467.174
#>
#> $Buss_Form_eight_quarters
#> fcst lower upper CI
#> Buss_Form_eight_quarters.fcst 30596.53 27779.16 33413.89 2817.364
par(mar = c(4, 4, 2, 2))
plot(forecast_var_1, main="VAR(1) one-month-ahead forecast")
par(mar = c(4, 4, 2, 2))
plot(forecast_var_p, main="VAR(p) one-month-ahead forecast")
gg_test <- causality(Model_var_p)
#> Warning in causality(Model_var_p):
#> Argument 'cause' has not been specified;
#> using first variable in 'x$y' (Buss_App) as cause variable.
print(gg_test)
#> $Granger
#>
#> Granger causality H0: Buss_App do not Granger-cause Buss_App_plan_wages
#> Buss_form_four_quarters Buss_Form_eight_quarters
#>
#> data: VAR object Model_var_p
#> F-Test = 3.1108, df1 = 9, df2 = 676, p-value = 0.001123
#>
#>
#> $Instant
#>
#> H0: No instantaneous causality between: Buss_App and
#> Buss_App_plan_wages Buss_form_four_quarters Buss_Form_eight_quarters
#>
#> data: VAR object Model_var_p
#> Chi-squared = 83.518, df = 3, p-value < 2.2e-16
data_matrix <- as.matrix(merged_time_series)
sparse_var_model <- BigVAR.fit(data_matrix, p = 16, lambda = 0.1, struct = "SparseLag")
print(summary(sparse_var_model))
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> -12321.908 -0.094 0.009 -42.481 0.127 2731.470
Created on 2024-04-11 with reprex v2.1.0
amarkund_CDA_HW-1.pdf
The forecast obtained is 334217.17 and the confidence interval is [178899.05 489535.30]