Code
Code
2024-06-19
# Install necessary packages if not already installed
library(ggplot2)
library(urca)
library(vars)
##
## Attaching package: 'zoo'
library(lmtest)
library(sandwich)
library(aod)
## Warning: package 'aod' was built under R version 4.3.3
# Print plots
print(gdp_plot)
print(spread_plot)
# 2. Perform an ADF test for all variables
adf_gdp <- ur.df(log(data$GDP), type = "trend", lags = 4)
adf_spread <- ur.df(data$SPREAD, type = "trend", lags = 4)
summary(adf_gdp)
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression trend
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.100909 -0.003043 0.000605 0.004519 0.063065
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.3521178 0.1574980 2.236 0.0269 *
## z.lag.1 -0.0402397 0.0186461 -2.158 0.0326 *
## tt 0.0004361 0.0002122 2.055 0.0417 *
## z.diff.lag1 -0.0521032 0.0818492 -0.637 0.5254
## z.diff.lag2 0.0976401 0.0818038 1.194 0.2346
## z.diff.lag3 0.0784984 0.0819449 0.958 0.3397
## z.diff.lag4 0.0268430 0.0820036 0.327 0.7439
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01198 on 145 degrees of freedom
## Multiple R-squared: 0.05272, Adjusted R-squared: 0.01352
## F-statistic: 1.345 on 6 and 145 DF, p-value: 0.241
##
##
## Value of test-statistic is: -2.1581 9.6872 2.699
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2 6.22 4.75 4.07
## phi3 8.43 6.49 5.47
summary(adf_spread)
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression trend
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.19709 -0.25711 -0.03748 0.21175 1.06278
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.2150709 0.0835822 2.573 0.011081 *
## z.lag.1 -0.1218045 0.0321123 -3.793 0.000218 ***
## tt -0.0008051 0.0007555 -1.066 0.288401
## z.diff.lag1 0.4447543 0.0787861 5.645 8.41e-08 ***
## z.diff.lag2 -0.0559768 0.0872612 -0.641 0.522220
## z.diff.lag3 0.1277958 0.0863573 1.480 0.141083
## z.diff.lag4 0.1058927 0.0829093 1.277 0.203569
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4063 on 145 degrees of freedom
## Multiple R-squared: 0.234, Adjusted R-squared: 0.2023
## F-statistic: 7.384 on 6 and 145 DF, p-value: 6.598e-07
##
##
## Value of test-statistic is: -3.7931 4.9719 7.4371
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2 6.22 4.75 4.07
## phi3 8.43 6.49 5.47
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 4 2 2 4
##
## $criteria
## 1 2 3 4
## AIC(n) -1.043748e+01 -1.059308e+01 -1.059077e+01 -1.060344e+01
## HQ(n) -1.037283e+01 -1.049610e+01 -1.046146e+01 -1.044181e+01
## SC(n) -1.027833e+01 -1.035435e+01 -1.027247e+01 -1.020556e+01
## FPE(n) 2.931362e-05 2.509118e-05 2.515193e-05 2.483982e-05
##
## Call:
## lm(formula = DY ~ DY_lag + SPREAD + SPREAD_lag, data = adldata)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.096566 -0.003576 0.000331 0.004532 0.063239
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.012731 0.001703 7.474 5.86e-12 ***
## DY_lag -0.085643 0.081366 -1.053 0.2942
## SPREAD -0.004771 0.002148 -2.221 0.0278 *
## SPREAD_lag 0.005045 0.002155 2.341 0.0206 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01185 on 151 degrees of freedom
## Multiple R-squared: 0.03757, Adjusted R-squared: 0.01845
## F-statistic: 1.965 on 3 and 151 DF, p-value: 0.1217
##
## Breusch-Godfrey test for serial correlation of order up to 4
##
## data: model
## LM test = 3.0389, df = 4, p-value = 0.5513
# If residuals are autocorrelated, re-estimate with Newey-West variance
estimator
coeftest(model, vcov = NeweyWest(model))
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0127310 0.0018711 6.8040 2.235e-10 ***
## DY_lag -0.0856430 0.1523950 -0.5620 0.57496
## SPREAD -0.0047712 0.0024259 -1.9667 0.05105 .
## SPREAD_lag 0.0050452 0.0026871 1.8776 0.06237 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Wald test:
## ----------
##
## Chi-squared test:
## X2 = 3.9, df = 2, P(> X2) = 0.14
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression trend
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.100909 -0.003043 0.000605 0.004519 0.063065
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.3521178 0.1574980 2.236 0.0269 *
## z.lag.1 -0.0402397 0.0186461 -2.158 0.0326 *
## tt 0.0004361 0.0002122 2.055 0.0417 *
## z.diff.lag1 -0.0521032 0.0818492 -0.637 0.5254
## z.diff.lag2 0.0976401 0.0818038 1.194 0.2346
## z.diff.lag3 0.0784984 0.0819449 0.958 0.3397
## z.diff.lag4 0.0268430 0.0820036 0.327 0.7439
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01198 on 145 degrees of freedom
## Multiple R-squared: 0.05272, Adjusted R-squared: 0.01352
## F-statistic: 1.345 on 6 and 145 DF, p-value: 0.241
##
##
## Value of test-statistic is: -2.1581 9.6872 2.699
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2 6.22 4.75 4.07
## phi3 8.43 6.49 5.47
print(summary(adf_spread))
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression trend
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.19709 -0.25711 -0.03748 0.21175 1.06278
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.2150709 0.0835822 2.573 0.011081 *
## z.lag.1 -0.1218045 0.0321123 -3.793 0.000218 ***
## tt -0.0008051 0.0007555 -1.066 0.288401
## z.diff.lag1 0.4447543 0.0787861 5.645 8.41e-08 ***
## z.diff.lag2 -0.0559768 0.0872612 -0.641 0.522220
## z.diff.lag3 0.1277958 0.0863573 1.480 0.141083
## z.diff.lag4 0.1058927 0.0829093 1.277 0.203569
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4063 on 145 degrees of freedom
## Multiple R-squared: 0.234, Adjusted R-squared: 0.2023
## F-statistic: 7.384 on 6 and 145 DF, p-value: 6.598e-07
##
##
## Value of test-statistic is: -3.7931 4.9719 7.4371
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2 6.22 4.75 4.07
## phi3 8.43 6.49 5.47
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 4 2 2 4
##
## $criteria
## 1 2 3 4
## AIC(n) -1.043748e+01 -1.059308e+01 -1.059077e+01 -1.060344e+01
## HQ(n) -1.037283e+01 -1.049610e+01 -1.046146e+01 -1.044181e+01
## SC(n) -1.027833e+01 -1.035435e+01 -1.027247e+01 -1.020556e+01
## FPE(n) 2.931362e-05 2.509118e-05 2.515193e-05 2.483982e-05
print(summary(model))
##
## Call:
## lm(formula = DY ~ DY_lag + SPREAD + SPREAD_lag, data = adldata)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.096566 -0.003576 0.000331 0.004532 0.063239
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.012731 0.001703 7.474 5.86e-12 ***
## DY_lag -0.085643 0.081366 -1.053 0.2942
## SPREAD -0.004771 0.002148 -2.221 0.0278 *
## SPREAD_lag 0.005045 0.002155 2.341 0.0206 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01185 on 151 degrees of freedom
## Multiple R-squared: 0.03757, Adjusted R-squared: 0.01845
## F-statistic: 1.965 on 3 and 151 DF, p-value: 0.1217
##
## Breusch-Godfrey test for serial correlation of order up to 4
##
## data: model
## LM test = 3.0389, df = 4, p-value = 0.5513
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0127310 0.0018711 6.8040 2.235e-10 ***
## DY_lag -0.0856430 0.1523950 -0.5620 0.57496
## SPREAD -0.0047712 0.0024259 -1.9667 0.05105 .
## SPREAD_lag 0.0050452 0.0026871 1.8776 0.06237 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Wald test:
## ----------
##
## Chi-squared test:
## X2 = 3.9, df = 2, P(> X2) = 0.14