# INITIALISATION
= 1
nlag = 0.5
tau = 20
nfore = TRUE
corrected = 200
window.size data(cgs2021)
kable(SummaryStatistics(cgs2021))
## The following statistics are used:
##
## Skewness: D'Agostino, R.B. (1970). Transformation to Normality of the Null Distribution of G1. Biometrika, 57, 3, 679-681.
##
## Excess Kurtosis: Anscombe, F.J., Glynn, W.J. (1983) Distribution of kurtosis statistic for normal statistics. Biometrika, 70, 1, 227-234
##
## Normality test: Jarque, C. M., & Bera, A. K. (1980). Efficient tests for normality, homoscedasticity and serial independence of regression residuals. Economics Letters, 6(3), 255-259.
##
## ERS unit-root test: Elliott, G., Rothenberg, T. J., & Stock, J. H. (1996). Efficient Tests for an Autoregressive Unit Root. Econometrica, 64(4), 813-836.
##
## Weighted Portmanteau statistics: Fisher, T. J., & Gallagher, C. M. (2012). New weighted portmanteau statistics for time series goodness of fit testing. Journal of the American Statistical Association, 107(498), 777-787.
##
##
USD1Y | EUR1Y | GBP1Y | JPY1Y | |
---|---|---|---|---|
Mean | -0.001 | -0.001* | -0.001*** | 0.000 |
(0.160) | (0.074) | (0.007) | (0.805) | |
Variance | 0.001*** | 0.001*** | 0.001*** | 0.000*** |
Skewness | -0.628*** | -0.385*** | -0.693*** | -0.398*** |
(0.000) | (0.000) | (0.000) | (0.000) | |
Ex.Kurtosis | 13.975*** | 25.931*** | 18.756*** | 20.212*** |
(0.000) | (0.000) | (0.000) | (0.000) | |
JB | 31983.470*** | 109332.245*** | 57462.247*** | 66469.083*** |
(0.000) | (0.000) | (0.000) | (0.000) | |
ERS | -6.358*** | -23.176*** | -22.380*** | -21.865*** |
(0.000) | (0.000) | (0.000) | (0.000) | |
Q(20) | 90.481*** | 135.246*** | 160.961*** | 54.735*** |
(0.000) | (0.000) | (0.000) | (0.000) | |
Q2(20) | 1723.487*** | 967.321*** | 1522.432*** | 755.185*** |
(0.000) | (0.000) | (0.000) | (0.000) | |
kendall | USD1Y | EUR1Y | GBP1Y | JPY1Y |
USD1Y | 1.000*** | 0.274*** | 0.280*** | 0.096*** |
EUR1Y | 0.274*** | 1.000*** | 0.313*** | 0.085*** |
GBP1Y | 0.280*** | 0.313*** | 1.000*** | 0.105*** |
JPY1Y | 0.096*** | 0.085*** | 0.105*** | 1.000*** |
= ConnectednessApproach(cgs2021,
dca model="QVAR",
connectedness="Time",
nlag=nlag,
nfore=nfore,
corrected=corrected,
window.size=window.size,
VAR_config=list(QVAR=list(tau=tau)))
## Estimating model
## Computing connectedness measures
## The QVAR connectedness approach is implemented according to:
## Chatziantoniou, I., Gabauer, D., & Stenfors, A. (2021). Interest rate swaps and the transmission mechanism of monetary policy: A quantile connectedness approach. Economics Letters, 204, 109891.
kable(dca$TABLE)
USD1Y | EUR1Y | GBP1Y | JPY1Y | FROM | |
---|---|---|---|---|---|
USD1Y | 75.84 | 10.45 | 11.12 | 2.60 | 24.16 |
EUR1Y | 10.21 | 76.47 | 11.14 | 2.18 | 23.53 |
GBP1Y | 11.87 | 11.15 | 74.82 | 2.15 | 25.18 |
JPY1Y | 5.01 | 2.86 | 2.85 | 89.27 | 10.73 |
TO | 27.10 | 24.46 | 25.11 | 6.93 | 83.60 |
Inc.Own | 102.93 | 100.94 | 99.93 | 96.20 | cTCI/TCI |
NET | 2.93 | 0.94 | -0.07 | -3.80 | 27.87/20.90 |
NPT | 2.00 | 3.00 | 1.00 | 0.00 |
PlotTCI(dca)
PlotNET(dca)
= ncol(cgs2021)
k = nrow(dca$TCI)
t = index(cgs2021)
date = colnames(cgs2021)
NAMES
= 10
n = seq(0.05, 0.95, 1/n)
quantiles print(quantiles)
[1] 0.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95
= list()
DCA_list = array(NA, c(t, length(quantiles)), dimnames=list(as.character(tail(date,t)), quantiles))
TCI = array(NA, c(t, k, length(quantiles)), dimnames=list(as.character(tail(date,t)), NAMES, quantiles))
NET for (j in 1:length(quantiles)) {
= suppressMessages(ConnectednessApproach(cgs2021,
dca model="QVAR",
connectedness="Time",
nlag=nlag,
nfore=nfore,
corrected=corrected,
window.size=window.size,
VAR_config=list(QVAR=list(tau=quantiles[j]))))
= dca$TCI
TCI[,j] = dca$NET
NET[,,j] = c(DCA_list, list(dca$TABLE))
DCA_list print(quantiles[j])
}
[1] 0.05 [1] 0.15 [1] 0.25 [1] 0.35 [1] 0.45 [1] 0.55 [1] 0.65 [1] 0.75 [1] 0.85 [1] 0.95
= 20
nlevels = 0.01 # get rid of outliers
threshold filled.contour(tail(date,t), quantiles, TCI, xlab="", ylab="", ylim=c(0,1))
for (i in 1:k) {
= NET[,i,,drop=FALSE]
net which(net<quantile(net, threshold), arr.ind=TRUE)] = as.numeric(quantile(net, threshold))
net[which(net>quantile(net, 1-threshold), arr.ind=TRUE)] = as.numeric(quantile(net, 1-threshold))
net[
= seq(-ceiling(max(abs(net))), ceiling(max(abs(net))), length.out=nlevels)
lvls = function(n) {hcl.colors(n, "RdBu", rev=TRUE)}
color.palette = as.numeric(dimnames(net)[[3]])
quantiles filled.contour(tail(date,t), quantiles, as.matrix(net[,1,]),
col=color.palette(nlevels-1), levels=lvls, main=colnames(net), ylim=c(0,1))
}