library(tidyverse);library(vars);library(lmtest);library(nortest);library(tseries);library(psych);library(apaTables);library(dLagM);library(car);library(moments);library(gtools);library(ggpubr);library(rcompanion);options(scipen=999);options(warn = -1)Macro-I
setwd("E:/PhD_R");
df=read.csv("E:/PhD_R/1_IMPACT/M_SFFET_Apr95.csv")Time Series Data
df1=df [-1 ];dfd=sapply(df1,FUN=diff);dfd=data.frame(dfd) ;names(dfd)[1] "SX" "FDI" "FII" "USD" "NBT"
Testing Stationarity
adf.test(dfd$SX) ; adf.test(dfd$FDI) ; adf.test(dfd$FII) ; adf.test(dfd$USD) ; adf.test(dfd$NBT);
Augmented Dickey-Fuller Test
data: dfd$SX
Dickey-Fuller = -6.1342, Lag order = 6, p-value = 0.01
alternative hypothesis: stationary
Augmented Dickey-Fuller Test
data: dfd$FDI
Dickey-Fuller = -13.051, Lag order = 6, p-value = 0.01
alternative hypothesis: stationary
Augmented Dickey-Fuller Test
data: dfd$FII
Dickey-Fuller = -11.098, Lag order = 6, p-value = 0.01
alternative hypothesis: stationary
Augmented Dickey-Fuller Test
data: dfd$USD
Dickey-Fuller = -6.1917, Lag order = 6, p-value = 0.01
alternative hypothesis: stationary
Augmented Dickey-Fuller Test
data: dfd$NBT
Dickey-Fuller = -9.3048, Lag order = 6, p-value = 0.01
alternative hypothesis: stationary
#Ploting Time Series Graphs
plot.ts(df$SX) ; plot.ts(df$FDI) ; plot.ts(df$FII) ; plot.ts(df$USD) ; plot.ts(df$NBT);#Ploting Density Curves:
plot(density(dfd$SX)) ; plot(density(dfd$FDI)) ; plot(density(dfd$FII)) ; plot(density(dfd$USD)) ; plot(density(dfd$NBT)) ;Ploting Line chart Sensex & FDI:
plot(dfd $ SX, type="o",col="green",xlab="Time",ylab="Indices",lwd=2.0) ; lines(dfd $ FDI,type="o",col="red") Ploting Line chart Sensex & FII:
plot(dfd $ SX, type="o",col="green",xlab="Time",ylab="Indices",lwd=1.5) ; lines(dfd $ FII,type="o",col="red")Ploting Line chart Sensex & USD:
plot(dfd $ SX, type="o",col="green",xlab="Time",ylab="Indices",lwd=1.5) ; lines(dfd $ USD,type="o",col="red")Ploting Line chart Sensex & NBT:
plot(dfd $ SX, type="o",col="green",xlab="Time",ylab="Indices",lwd=1.5) ; lines(dfd $ NBT,type="o",col="red")Correlation between Macro-economic Variables with Sensex:
lowerCor(dfd, method = "pearson") SX FDI FII USD NBT
SX 1.00
FDI 0.10 1.00
FII 0.50 0.06 1.00
USD -0.35 -0.04 -0.13 1.00
NBT -0.05 -0.11 0.04 0.11 1.00
#ARDL Bound Test for Sensex & FDI:
ABT_1=ardlBound(dfd, formula=SX~FDI, case=3,max.p=8,max.q=1)
Orders being calculated with max.p = 8 and max.q = 1 ...
Autoregressive order: 2 and p-orders: 9
------------------------------------------------------
Breusch-Godfrey Test for the autocorrelation in residuals:
Breusch-Godfrey test for serial correlation of order up to 1
data: modelFull$model
LM test = 0.51131, df1 = 1, df2 = 297, p-value = 0.4751
------------------------------------------------------
Ljung-Box Test for the autocorrelation in residuals:
Box-Ljung test
data: res
X-squared = 0.0041594, df = 1, p-value = 0.9486
------------------------------------------------------
Breusch-Pagan Test for the homoskedasticity of residuals:
studentized Breusch-Pagan test
data: modelFull$model
BP = 26.519, df = 12, p-value = 0.009058
The p-value of Breusch-Pagan test for the homoskedasticity of residuals: 0.009057683 < 0.05!
------------------------------------------------------
Shapiro-Wilk test of normality of residuals:
Shapiro-Wilk normality test
data: modelFull$model$residual
W = 0.871, p-value = 0.000000000000001822
The p-value of Shapiro-Wilk test normality of residuals: 0.000000000000001822055 < 0.05!
------------------------------------------------------
PESARAN, SHIN AND SMITH (2001) COINTEGRATION TEST
Observations: 319
Number of Regressors (k): 1
Case: 3
------------------------------------------------------
- F-test -
------------------------------------------------------
<------- I(0) ------------ I(1) ----->
10% critical value 4.04 4.78
5% critical value 4.94 5.73
1% critical value 6.84 7.84
F-statistic = 19.2780520391696
------------------------------------------------------
F-statistic note: Asymptotic critical values used.
------------------------------------------------------
Ramsey's RESET Test for model specification:
RESET test
data: modelECM$model
RESET = 5.511, df1 = 2, df2 = 297, p-value = 0.004466
the p-value of RESET test: 0.004466275 < 0.05!
------------------------------------------------------
------------------------------------------------------
Error Correction Model Output:
Time series regression with "ts" data:
Start = 9, End = 319
Call:
dynlm(formula = as.formula(model.text), data = data)
Residuals:
Min 1Q Median 3Q Max
-9249.4 -436.7 -51.2 479.5 3668.7
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 182.33167 67.40644 2.705 0.007223 **
ec.1 -0.97544 0.08076 -12.079 < 0.0000000000000002 ***
dFDI.t 0.01625 0.04130 0.393 0.694277
dFDI.1 0.61449 0.08928 6.883 0.0000000000345 ***
dFDI.2 0.43601 0.10126 4.306 0.0000225601632 ***
dFDI.3 0.34424 0.10526 3.270 0.001200 **
dFDI.4 0.35976 0.10595 3.396 0.000777 ***
dFDI.5 0.32719 0.10031 3.262 0.001236 **
dFDI.6 0.29812 0.08831 3.376 0.000833 ***
dFDI.7 0.21536 0.07016 3.069 0.002341 **
dFDI.8 0.07336 0.04409 1.664 0.097156 .
dSX.1 -0.03983 0.05736 -0.694 0.487987
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1158 on 299 degrees of freedom
Multiple R-squared: 0.5318, Adjusted R-squared: 0.5146
F-statistic: 30.88 on 11 and 299 DF, p-value: < 0.00000000000000022
------------------------------------------------------
Long-run coefficients:
SX.1 FDI.1
-0.9754370 -0.7070564
ARDL Bound Test for Sensex & FII:
ABT_2=ardlBound(dfd, formula=SX~FII, case=3,max.p=7,max.q=1)
Orders being calculated with max.p = 7 and max.q = 1 ...
Autoregressive order: 2 and p-orders: 8
------------------------------------------------------
Breusch-Godfrey Test for the autocorrelation in residuals:
Breusch-Godfrey test for serial correlation of order up to 1
data: modelFull$model
LM test = 12.962, df1 = 1, df2 = 299, p-value = 0.0003721
The p-value of Breusch-Godfrey test for the autocorrelation in residuals: 0.0003720704 < 0.05!
------------------------------------------------------
Ljung-Box Test for the autocorrelation in residuals:
Box-Ljung test
data: res
X-squared = 0.094533, df = 1, p-value = 0.7585
------------------------------------------------------
Breusch-Pagan Test for the homoskedasticity of residuals:
studentized Breusch-Pagan test
data: modelFull$model
BP = 31.645, df = 11, p-value = 0.0008695
The p-value of Breusch-Pagan test for the homoskedasticity of residuals: 0.0008695241 < 0.05!
------------------------------------------------------
Shapiro-Wilk test of normality of residuals:
Shapiro-Wilk normality test
data: modelFull$model$residual
W = 0.90211, p-value = 0.0000000000002494
The p-value of Shapiro-Wilk test normality of residuals: 0.0000000000002493522 < 0.05!
------------------------------------------------------
PESARAN, SHIN AND SMITH (2001) COINTEGRATION TEST
Observations: 319
Number of Regressors (k): 1
Case: 3
------------------------------------------------------
- F-test -
------------------------------------------------------
<------- I(0) ------------ I(1) ----->
10% critical value 4.04 4.78
5% critical value 4.94 5.73
1% critical value 6.84 7.84
F-statistic = 21.2764116165807
------------------------------------------------------
F-statistic note: Asymptotic critical values used.
------------------------------------------------------
Ramsey's RESET Test for model specification:
RESET test
data: modelECM$model
RESET = 8.3385, df1 = 2, df2 = 299, p-value = 0.0002992
the p-value of RESET test: 0.0002992348 < 0.05!
------------------------------------------------------
------------------------------------------------------
Error Correction Model Output:
Time series regression with "ts" data:
Start = 8, End = 319
Call:
dynlm(formula = as.formula(model.text), data = data)
Residuals:
Min 1Q Median 3Q Max
-5166.6 -387.7 -59.3 372.1 5559.0
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 163.113018 56.238055 2.900 0.004001 **
ec.1 -0.903201 0.080096 -11.276 < 0.0000000000000002 ***
dFII.t 0.075021 0.005270 14.237 < 0.0000000000000002 ***
dFII.1 -0.104330 0.019204 -5.433 0.000000115 ***
dFII.2 -0.076390 0.016279 -4.692 0.000004103 ***
dFII.3 -0.051306 0.014679 -3.495 0.000545 ***
dFII.4 -0.038185 0.013238 -2.884 0.004204 **
dFII.5 -0.030226 0.011527 -2.622 0.009180 **
dFII.6 -0.015037 0.008935 -1.683 0.093440 .
dFII.7 -0.001618 0.005435 -0.298 0.766066
dSX.1 -0.084274 0.057192 -1.474 0.141656
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 960.4 on 301 degrees of freedom
Multiple R-squared: 0.676, Adjusted R-squared: 0.6652
F-statistic: 62.8 on 10 and 301 DF, p-value: < 0.00000000000000022
------------------------------------------------------
Long-run coefficients:
SX.1 FII.1
-0.9032014 0.2236396
#ARDL Bound Test for Sensex & USD:
ABT_3=ardlBound(dfd, formula=SX~USD, case=3,max.p=1,max.q=1)
Orders being calculated with max.p = 1 and max.q = 1 ...
Autoregressive order: 2 and p-orders: 2
------------------------------------------------------
Breusch-Godfrey Test for the autocorrelation in residuals:
Breusch-Godfrey test for serial correlation of order up to 1
data: modelFull$model
LM test = 0.80382, df1 = 1, df2 = 311, p-value = 0.3706
------------------------------------------------------
Ljung-Box Test for the autocorrelation in residuals:
Box-Ljung test
data: res
X-squared = 0.0012342, df = 1, p-value = 0.972
------------------------------------------------------
Breusch-Pagan Test for the homoskedasticity of residuals:
studentized Breusch-Pagan test
data: modelFull$model
BP = 13.068, df = 5, p-value = 0.02275
The p-value of Breusch-Pagan test for the homoskedasticity of residuals: 0.0227501 < 0.05!
------------------------------------------------------
Shapiro-Wilk test of normality of residuals:
Shapiro-Wilk normality test
data: modelFull$model$residual
W = 0.87944, p-value = 0.000000000000004169
The p-value of Shapiro-Wilk test normality of residuals: 0.000000000000004169366 < 0.05!
------------------------------------------------------
PESARAN, SHIN AND SMITH (2001) COINTEGRATION TEST
Observations: 319
Number of Regressors (k): 1
Case: 3
------------------------------------------------------
- F-test -
------------------------------------------------------
<------- I(0) ------------ I(1) ----->
10% critical value 4.04 4.78
5% critical value 4.94 5.73
1% critical value 6.84 7.84
F-statistic = 78.5565883916374
------------------------------------------------------
F-statistic note: Asymptotic critical values used.
------------------------------------------------------
Ramsey's RESET Test for model specification:
RESET test
data: modelECM$model
RESET = 10.921, df1 = 2, df2 = 311, p-value = 0.00002607
the p-value of RESET test: 0.00002606975 < 0.05!
------------------------------------------------------
------------------------------------------------------
Error Correction Model Output:
Time series regression with "ts" data:
Start = 2, End = 319
Call:
dynlm(formula = as.formula(model.text), data = data)
Residuals:
Min 1Q Median 3Q Max
-7738.2 -434.8 -30.6 414.9 4849.6
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 243.17620 63.99348 3.800 0.000174 ***
ec.1 -1.04994 0.08363 -12.555 < 0.0000000000000002 ***
dUSD.t -536.16642 63.42052 -8.454 0.00000000000000108 ***
dUSD.1 0.64641 65.55613 0.010 0.992139
dSX.1 -0.03376 0.05832 -0.579 0.563102
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1088 on 313 degrees of freedom
Multiple R-squared: 0.5678, Adjusted R-squared: 0.5623
F-statistic: 102.8 on 4 and 313 DF, p-value: < 0.00000000000000022
------------------------------------------------------
Long-run coefficients:
SX.1 USD.1
-1.049936 -446.758500
#ARDL Bound Test for Sensex & NBT:
ABT_4=ardlBound(dfd, formula=SX~NBT, case=3,max.p=5,max.q=1)
Orders being calculated with max.p = 5 and max.q = 1 ...
Autoregressive order: 2 and p-orders: 6
------------------------------------------------------
Breusch-Godfrey Test for the autocorrelation in residuals:
Breusch-Godfrey test for serial correlation of order up to 1
data: modelFull$model
LM test = 1.7509, df1 = 1, df2 = 303, p-value = 0.1868
------------------------------------------------------
Ljung-Box Test for the autocorrelation in residuals:
Box-Ljung test
data: res
X-squared = 0.0054593, df = 1, p-value = 0.9411
------------------------------------------------------
Breusch-Pagan Test for the homoskedasticity of residuals:
studentized Breusch-Pagan test
data: modelFull$model
BP = 12.604, df = 9, p-value = 0.1813
------------------------------------------------------
Shapiro-Wilk test of normality of residuals:
Shapiro-Wilk normality test
data: modelFull$model$residual
W = 0.86865, p-value = 0.000000000000001071
The p-value of Shapiro-Wilk test normality of residuals: 0.000000000000001070651 < 0.05!
------------------------------------------------------
PESARAN, SHIN AND SMITH (2001) COINTEGRATION TEST
Observations: 319
Number of Regressors (k): 1
Case: 3
------------------------------------------------------
- F-test -
------------------------------------------------------
<------- I(0) ------------ I(1) ----->
10% critical value 4.04 4.78
5% critical value 4.94 5.73
1% critical value 6.84 7.84
F-statistic = 26.6154952419049
------------------------------------------------------
F-statistic note: Asymptotic critical values used.
------------------------------------------------------
Ramsey's RESET Test for model specification:
RESET test
data: modelECM$model
RESET = 6.0737, df1 = 2, df2 = 303, p-value = 0.002592
the p-value of RESET test: 0.002592472 < 0.05!
------------------------------------------------------
------------------------------------------------------
Error Correction Model Output:
Time series regression with "ts" data:
Start = 6, End = 319
Call:
dynlm(formula = as.formula(model.text), data = data)
Residuals:
Min 1Q Median 3Q Max
-9040.2 -431.0 -46.8 410.1 4671.4
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 180.849807 68.049235 2.658 0.00828 **
ec.1 -1.017521 0.081099 -12.547 < 0.0000000000000002 ***
dNBT.t -562.299579 1259.963626 -0.446 0.65571
dNBT.1 -9496.040723 2044.543444 -4.645 0.00000507 ***
dNBT.2 -6829.178152 2319.140424 -2.945 0.00348 **
dNBT.3 -4718.497481 2257.067923 -2.091 0.03740 *
dNBT.4 -2617.348496 1887.129526 -1.387 0.16647
dNBT.5 -1367.030441 1259.134066 -1.086 0.27847
dSX.1 0.009591 0.057624 0.166 0.86792
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1179 on 305 degrees of freedom
Multiple R-squared: 0.5057, Adjusted R-squared: 0.4928
F-statistic: 39.01 on 8 and 305 DF, p-value: < 0.00000000000000022
------------------------------------------------------
Long-run coefficients:
SX.1 NBT.1
-1.017521 9859.045866
#Granger Casuality Test between Sensex & FDI:
grangertest(dfd $ SX ~ dfd $ FDI, order=8,data=dfd) ;grangertest(dfd $ FDI ~ dfd $ SX, order=8,data=dfd)Granger causality test
Model 1: dfd$SX ~ Lags(dfd$SX, 1:8) + Lags(dfd$FDI, 1:8)
Model 2: dfd$SX ~ Lags(dfd$SX, 1:8)
Res.Df Df F Pr(>F)
1 295
2 303 -8 2.3948 0.01626 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Granger causality test
Model 1: dfd$FDI ~ Lags(dfd$FDI, 1:8) + Lags(dfd$SX, 1:8)
Model 2: dfd$FDI ~ Lags(dfd$FDI, 1:8)
Res.Df Df F Pr(>F)
1 295
2 303 -8 4.3212 0.00006113 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Granger Casuality Test between Sensex & FII:
grangertest(dfd $ SX ~ dfd $ FII, order=3,data=dfd) ; grangertest(dfd $ FII ~ dfd $ SX, order=3,data=dfd)Granger causality test
Model 1: dfd$SX ~ Lags(dfd$SX, 1:3) + Lags(dfd$FII, 1:3)
Model 2: dfd$SX ~ Lags(dfd$SX, 1:3)
Res.Df Df F Pr(>F)
1 310
2 313 -3 0.1875 0.9049
Granger causality test
Model 1: dfd$FII ~ Lags(dfd$FII, 1:3) + Lags(dfd$SX, 1:3)
Model 2: dfd$FII ~ Lags(dfd$FII, 1:3)
Res.Df Df F Pr(>F)
1 310
2 313 -3 7.1987 0.0001099 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Granger Casuality Test between Sensex & USD:
grangertest(dfd $ SX ~ dfd $ USD, order=1,data=dfd) ; grangertest(dfd $ USD ~ dfd $ SX, order=1,data=dfd)Granger causality test
Model 1: dfd$SX ~ Lags(dfd$SX, 1:1) + Lags(dfd$USD, 1:1)
Model 2: dfd$SX ~ Lags(dfd$SX, 1:1)
Res.Df Df F Pr(>F)
1 316
2 317 -1 0.0468 0.8289
Granger causality test
Model 1: dfd$USD ~ Lags(dfd$USD, 1:1) + Lags(dfd$SX, 1:1)
Model 2: dfd$USD ~ Lags(dfd$USD, 1:1)
Res.Df Df F Pr(>F)
1 316
2 317 -1 13.866 0.0002324 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Granger Casuality Test between Sensex & NBT:
grangertest(dfd $ SX ~ dfd $ NBT, order=2,data=dfd) ; grangertest(dfd $ NBT ~ dfd $ SX, order=2,data=dfd)Granger causality test
Model 1: dfd$SX ~ Lags(dfd$SX, 1:2) + Lags(dfd$NBT, 1:2)
Model 2: dfd$SX ~ Lags(dfd$SX, 1:2)
Res.Df Df F Pr(>F)
1 313
2 315 -2 0.6825 0.5061
Granger causality test
Model 1: dfd$NBT ~ Lags(dfd$NBT, 1:2) + Lags(dfd$SX, 1:2)
Model 2: dfd$NBT ~ Lags(dfd$NBT, 1:2)
Res.Df Df F Pr(>F)
1 313
2 315 -2 2.4131 0.0912 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1