34
R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents Required R packages 2 Chapter 10 Case study: Dependence among German DAX stocks 2 Section 10.1: Data description and sector groupings .......................... 2 Figure 10.2: DAX: Pairs plots for automotive, chemical/health (top row), financial, industrial (middle row), transport/ultility/energy and retail sector (bottom row) (Within each panel: Upper: pairs plots of copula data, diagonal: histogram of copula margins, lower: normalized contour plots). ............................................ 3 Figure 10.3: DAX: First C-vine trees for the sectors auto, chem.health, financial,industrial, trans.util.it and retail ........................................ 12 Section 10.4 Dependence structure among representatives 13 Figure 10.4: DAX: Upper: pairs plots of copula data, diagonal: histogram of copula margins, lower: normalized contour plots for the representive companies of the sectors ............. 13 Selecting the appropriate u data ..................................... 13 Figure 10.4: DAX: Upper: pairs plots of copula data, diagonal: histogram of copula margins, lower: normalized contour plots for the representive companies of the sectors ............. 13 Figure 10.5: DAX: R-vine trees allowing for all pair copula families for sector representatives together with their pair copula family and the fitted Kendall’s τ value for each edge based on joint maximum likelihood ......................................... 18 Figure 10.5: DAX: R-vine trees allowing only for Student t or Gaussian copulas (bottom) for sector representatives together with their pair copula family and the fitted Kendall’s τ value for each edge based on joint maximum likelihood .............................. 19 Figure 10.6: DAX: Fitted R-vine normalized contour for sector representatives allowing forall pair copulas (rv) based on joint maximum likelihood (node abbreviations: 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) ........ 20 Table 10.3: DAX: Sequential parameter estimates (par and if necessary par2) togetherwith implied Kendall’s τ (tau), upper (utd) and lower (ltd) tail dependence coefficient estimates for the R-vine copula (allowing for all implemented pair copula families) (node abbreviations: 1 = DAI.DE, 2 = BAS.DE, 3 = DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) . . 21 Table 10.3: DAX: Sequential parameter estimates (par and if necessary par2) togetherwith implied Kendall’s τ (tau), upper (utd) and lower (ltd) tail dependence coefficient estimates for the R-vine copula with only Student t and Gaussian paircopulas (node abbreviations: 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) 22 Figure 10.7: DAX: C-vine trees for sector representatives together with their chosen pair copula families and the corresponding fitted Kendall’s τ values based on joint maximum likelihood estimation ............................................... 23 Figure 10.7: DAX: D-vine trees for sector representatives together with their chosen pair copula families and the corresponding fitted Kendall’s τ values based on joint maximum likelihood estimation ............................................... 23 Figure 10.8: DAX: Fitted D-vine normalized contours for sector representatives allowing for all pair copulas based on joint maximum likelihood (node abbreviations: 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <->DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) ......... 24 1

R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

R-code for Chapter 10: Case study: Dependence amongGerman DAX stocks

Claudia Czado04 March, 2019

ContentsRequired R packages 2

Chapter 10 Case study: Dependence among German DAX stocks 2Section 10.1: Data description and sector groupings . . . . . . . . . . . . . . . . . . . . . . . . . . 2Figure 10.2: DAX: Pairs plots for automotive, chemical/health (top row), financial, industrial

(middle row), transport/ultility/energy and retail sector (bottom row) (Within each panel:Upper: pairs plots of copula data, diagonal: histogram of copula margins, lower: normalizedcontour plots). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Figure 10.3: DAX: First C-vine trees for the sectors auto, chem.health, financial,industrial,trans.util.it and retail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Section 10.4 Dependence structure among representatives 13Figure 10.4: DAX: Upper: pairs plots of copula data, diagonal: histogram of copula margins, lower:

normalized contour plots for the representive companies of the sectors . . . . . . . . . . . . . 13Selecting the appropriate u data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Figure 10.4: DAX: Upper: pairs plots of copula data, diagonal: histogram of copula margins, lower:

normalized contour plots for the representive companies of the sectors . . . . . . . . . . . . . 13Figure 10.5: DAX: R-vine trees allowing for all pair copula families for sector representatives together

with their pair copula family and the fitted Kendall’s τ value for each edge based on jointmaximum likelihood . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Figure 10.5: DAX: R-vine trees allowing only for Student t or Gaussian copulas (bottom) for sectorrepresentatives together with their pair copula family and the fitted Kendall’s τ value for eachedge based on joint maximum likelihood . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Figure 10.6: DAX: Fitted R-vine normalized contour for sector representatives allowing forall paircopulas (rv) based on joint maximum likelihood (node abbreviations: 1 <-> DAI.DE, 2 <->BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) . . . . . . . . 20

Table 10.3: DAX: Sequential parameter estimates (par and if necessary par2) togetherwith impliedKendall’s τ (tau), upper (utd) and lower (ltd) tail dependence coefficient estimates for theR-vine copula (allowing for all implemented pair copula families) (node abbreviations: 1 =DAI.DE, 2 = BAS.DE, 3 = DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) . . 21

Table 10.3: DAX: Sequential parameter estimates (par and if necessary par2) togetherwith impliedKendall’s τ (tau), upper (utd) and lower (ltd) tail dependence coefficient estimates for theR-vine copula with only Student t and Gaussian paircopulas (node abbreviations: 1 <->DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) 22

Figure 10.7: DAX: C-vine trees for sector representatives together with their chosen pair copulafamilies and the corresponding fitted Kendall’s τ values based on joint maximum likelihoodestimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Figure 10.7: DAX: D-vine trees for sector representatives together with their chosen pair copulafamilies and the corresponding fitted Kendall’s τ values based on joint maximum likelihoodestimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Figure 10.8: DAX: Fitted D-vine normalized contours for sector representatives allowing for allpair copulas based on joint maximum likelihood (node abbreviations: 1 <-> DAI.DE, 2 <->BAS.DE, 3 <->DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) . . . . . . . . . 24

1

Page 2: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

Figure 10.8: DAX: Fitted D-vine normalized contours for sector representatives allowing for allpair copulas based on joint maximum likelihood (node abbreviations: 1 <-> DAI.DE, 2 <->BAS.DE, 3 <->DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) . . . . . . . . . 25

Table 10.4: DAX: Sequential parameter estimates (par and if necessary par2) together with impliedKendall’s τ (tau), upper (utd) and lower (ltd) tail dependence coefficients for the C-vinespecification allowing all implemented pair copulas. (node abbreviations: 1 <-> DAI.DE, 2<-> BAS.DE, 3 <-> DBK.DE,4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) . . . . . . 26

Table 10.4: DAX: Sequential parameter estimates (par and if necessary par2) together with impliedKendall’s τ (tau), upper (utd) and lower (ltd) tail dependence coefficients for the D-vinespecification allowing all implemented pair copulas. (node abbreviations: 1 <-> DAI.DE, 2<-> BAS.DE, 3 <-> DBK.DE,4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE) . . . . . . 27

Section 10.5 Model comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Table 10.5: DAX: Estimated log likelihood (loglik), number of parameters (df), AIC and BIC for all

fitted models (seq=sequential estimation, mle=maximum likelihood, ind= asymptotic α levelindependence tests used, all= all implemented pair copula families used, t = only Student tand Gaussian pair copulas used, G = only Gaussian copulas used) . . . . . . . . . . . . . . . 28

Comparing R-vines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Comparing Gaussian vines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Comparing C-vines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Comparing D-vines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Table 10.6: DAX: Vuong test model comparison within each vine class using joint maximum

likelihood estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Table 10.7: DAX: Vuong test model comparison between each vine class using joint maximum

likelihood estimation allowing for all implemented pair copula families and without theindependence test (2.8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Required R packages

• VineCopula• rafalib• TSP• fGarch

Chapter 10 Case study: Dependence among German DAX stocks

Section 10.1: Data description and sector groupings

Load data, fit marginal models and create copula data

Marginal GARCH(1,1) models with t innovations are fitted to each of the 30 DAX components

Copula data is created using the fitted innovation distribution of the GARCH modelload("dax_df.RData")

fits = list()res = list()pvalues = rep(0,30)udata = matrix(0,dim(dax_df)[1]-1,30)

for(i in 1:30){

2

Page 3: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

fits[[i]] = garchFit(formula=~garch(1,1), data=diff(log(dax_df[,i])),trace=FALSE, control=list(maxit=10000),include.mean=TRUE, cond.dist="std")

res[[i]] = residuals(fits[[i]], standardize=TRUE)pvalues[i] = ks.test(res[[i]], "pstd", 0, 1, coef(fits[[i]])[5])$p.valueudata[,i] = pstd(res[[i]], nu=coef(fits[[i]])[5])

}colnames(udata)<-colnames(dax_df)dim(dax_df)

## [1] 1659 30

rownames(udata)<-rownames(dax_df)[-1]

Subdivide data according to sector

The file “return.dat” includes the sector classification of the 30 DAX componentsreturn<-read.table("return.dat",header=T)attach(return)

ticker.auto<-rownames(return[type=="automobile",])ticker.chem<-rownames(return[type=="chem.health",])ticker.fin<-rownames(return[type=="financial",])ticker.indust<-rownames(return[type=="industrial",])ticker.retail<-rownames(return[type=="retail",])ticker.other<-rownames(return[type=="trans.util.it",])u.auto<-as.copuladata(udata[,ticker.auto])u.chem<-as.copuladata(udata[,ticker.chem])u.fin<-as.copuladata(udata[,ticker.fin])u.indust<-as.copuladata(udata[,ticker.indust])u.retail<-as.copuladata(udata[,ticker.retail])u.other<-as.copuladata(udata[,ticker.other])detach(return)

Figure 10.2: DAX: Pairs plots for automotive, chemical/health (top row), finan-cial, industrial (middle row), transport/ultility/energy and retail sector (bottomrow) (Within each panel: Upper: pairs plots of copula data, diagonal: histogramof copula margins, lower: normalized contour plots).

pairs(u.auto)

3

Page 4: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

BMW.DE

0.51 0.34

z1

z 2

DAI.DE

0.37

z1

z 2

z1

z 2

VOW3.DE

pairs(u.chem)

4

Page 5: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

BAS.DE

0.43 0.20 0.19 0.42 0.21 0.32

z1

z 2

BAYN.DE

0.21 0.17 0.36 0.22 0.27

z1

z 2

z1

z 2

FME.DE

0.28 0.18 0.20 0.13

z1

z 2

z1

z 2

z1

z 2

FRE.DE

0.18 0.19 0.15

z1

z 2

z1

z 2

z1

z 2

z1

z 2

LIN.DE

0.21 0.29

z1

z 2

z1

z 2

z1

z 2

z1

z 2

z1

z 2

MRK.DE

0.16

z1

z 2

z1

z 2

z1

z 2

z1

z 2

z1

z 2

z1

z 2

SDF.DE

pairs(u.fin)

5

Page 6: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

ALV.DE

0.44 0.34 0.52 0.52

z1

z 2

CBK.DE

0.31 0.50 0.36

z1

z 2

z1

z 2

DB1.DE

0.37 0.31

z1

z 2

z1

z 2

z1

z 2

DBK.DE

0.43

z1

z 2

z1

z 2

z1

z 2

z1

z 2

MUV2.DE

pairs(u.indust)

6

Page 7: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

HEI.DE

0.27 0.31 0.33

z1

z 2

MAN.DE

0.39 0.37

z1

z 2

z1

z 2

SIE.DE

0.42

z1

z 2

z1

z 2

z1

z 2

TKA.DE

pairs(u.retail)

7

Page 8: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

ADS.DE

0.25 0.28 0.28

z1

z 2

BEI.DE

0.29 0.26

z1

z 2

z1

z 2

HEN3.DE

0.28

z1

z 2

z1

z 2

z1

z 2

MEO.DE

pairs(u.other)

8

Page 9: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

DPW.DE

0.29 0.30 0.28 0.34 0.30 0.25

z1

z 2

DTE.DE

0.32 0.25 0.29 0.33 0.27

z1

z 2

z1

z 2

EOAN.DE

0.21 0.24 0.58 0.26

z1

z 2

z1

z 2

z1

z 2

IFX.DE

0.31 0.21 0.31

z1

z 2

z1

z 2

z1

z 2

z1

z 2

LHA.DE

0.25 0.30

z1

z 2

z1

z 2

z1

z 2

z1

z 2

z1

z 2

RWE.DE

0.27

z1

z 2

z1

z 2

z1

z 2

z1

z 2

z1

z 2

z1

z 2

SAP.DE

Dependence within sectors

options(digits=2)round(cor(u.auto,method="kendall"),digits=2)

## BMW.DE DAI.DE VOW3.DE## BMW.DE 1.00 0.51 0.34## DAI.DE 0.51 1.00 0.37## VOW3.DE 0.34 0.37 1.00

round(cor(u.chem,method="kendall"),digits=2)

## BAS.DE BAYN.DE FME.DE FRE.DE LIN.DE MRK.DE SDF.DE

9

Page 10: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## BAS.DE 1.00 0.43 0.20 0.19 0.42 0.21 0.32## BAYN.DE 0.43 1.00 0.21 0.17 0.36 0.22 0.27## FME.DE 0.20 0.21 1.00 0.28 0.18 0.20 0.13## FRE.DE 0.19 0.17 0.28 1.00 0.18 0.19 0.15## LIN.DE 0.42 0.36 0.18 0.18 1.00 0.21 0.29## MRK.DE 0.21 0.22 0.20 0.19 0.21 1.00 0.16## SDF.DE 0.32 0.27 0.13 0.15 0.29 0.16 1.00

round(cor(u.fin,method="kendall"),digits=2)

## ALV.DE CBK.DE DB1.DE DBK.DE MUV2.DE## ALV.DE 1.00 0.44 0.34 0.52 0.52## CBK.DE 0.44 1.00 0.31 0.50 0.36## DB1.DE 0.34 0.31 1.00 0.37 0.31## DBK.DE 0.52 0.50 0.37 1.00 0.43## MUV2.DE 0.52 0.36 0.31 0.43 1.00

round(cor(u.indust,method="kendall"),digits=2)

## HEI.DE MAN.DE SIE.DE TKA.DE## HEI.DE 1.00 0.27 0.31 0.33## MAN.DE 0.27 1.00 0.39 0.37## SIE.DE 0.31 0.39 1.00 0.42## TKA.DE 0.33 0.37 0.42 1.00

round(cor(u.other,method="kendall"),digits=2)

## DPW.DE DTE.DE EOAN.DE IFX.DE LHA.DE RWE.DE SAP.DE## DPW.DE 1.00 0.29 0.30 0.28 0.34 0.30 0.25## DTE.DE 0.29 1.00 0.32 0.25 0.29 0.33 0.27## EOAN.DE 0.30 0.32 1.00 0.21 0.24 0.58 0.26## IFX.DE 0.28 0.25 0.21 1.00 0.31 0.21 0.31## LHA.DE 0.34 0.29 0.24 0.31 1.00 0.25 0.30## RWE.DE 0.30 0.33 0.58 0.21 0.25 1.00 0.27## SAP.DE 0.25 0.27 0.26 0.31 0.30 0.27 1.00

round(cor(u.retail,method="kendall"),digits=2)

## ADS.DE BEI.DE HEN3.DE MEO.DE## ADS.DE 1.00 0.25 0.28 0.28## BEI.DE 0.25 1.00 0.29 0.26## HEN3.DE 0.28 0.29 1.00 0.28## MEO.DE 0.28 0.26 0.28 1.00

Determining representatives of the sectors using C-vines

Auto sector

fit.cv.auto=RVineStructureSelect(u.auto, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=FALSE, level=0.05,type="CVine")

fit.cv.ind.auto=RVineStructureSelect(u.auto, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="CVine")

#summary(fit.cv.auto)#summary(fit.cv.ind.auto)

10

Page 11: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

Chemical sector

fit.cv.chem=RVineStructureSelect(u.chem, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=FALSE, level=0.05,type="CVine")

fit.cv.ind.chem=RVineStructureSelect(u.chem, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="CVine")

#summary(fit.cv.chem)#summary(fit.cv.ind.chem)

Financial sector

fit.cv.fin=RVineStructureSelect(u.fin, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=FALSE, level=0.05,type="CVine")

fit.cv.ind.fin=RVineStructureSelect(u.fin, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="CVine")

#summary(fit.cv.fin)#summary(fit.cv.ind.fin)

Industrial sector

fit.cv.indust=RVineStructureSelect(u.indust, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=FALSE, level=0.05,type="CVine")

fit.cv.ind.indust=RVineStructureSelect(u.indust, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="CVine")

#summary(fit.cv.indust)#summary(fit.cv.ind.indust)

Retail sector

fit.cv.retail=RVineStructureSelect(u.retail, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=FALSE, level=0.05,type="CVine")

fit.cv.ind.retail=RVineStructureSelect(u.retail, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="CVine")

#summary(fit.cv.retail)#summary(fit.cv.ind.retail)

Transport/Utility/IT sector

fit.cv.other=RVineStructureSelect(u.other, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=FALSE, level=0.05,type="CVine")

fit.cv.ind.other=RVineStructureSelect(u.other, familyset=c(1,2,5,6,4), selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="CVine")

#summary(fit.cv.other)#summary(fit.cv.ind.other)

11

Page 12: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

Figure 10.3: DAX: First C-vine trees for the sectors auto, chem.health, finan-cial,industrial, trans.util.it and retail

bigpar(2,3)plot(fit.cv.auto,tree=1,edge.labels="family-tau",type=1)plot(fit.cv.chem,tree=1,edge.labels="family-tau",type=1)plot(fit.cv.fin,tree=1,edge.labels="family-tau",type=1)plot(fit.cv.indust,tree=1,edge.labels="family-tau",type=1)plot(fit.cv.other,tree=1,edge.labels="family-tau",type=1)plot(fit.cv.retail,tree=1,edge.labels="family-tau",type=1)

Tree 1

t(0.5)

t(0.37)

BMW.DE

DAI.DE

VOW3.DE

Tree 1

t(0.43)

SG(0.17)

t(0.21)

t(0.42)

SG(0.19)

t(0.32)

BAYN.DE

FRE.DE

MRK.DE

LIN.DE

FME.DEBAS.DE

SDF.DE

Tree 1

t(0.49)

F(0.38)t(0.52)

t(0.43)

CBK.DE

DB1.DEALV.DE

DBK.DE

MUV2.DE

Tree 1

t(0.31)

t(0.38)

t(0.41)

HEI.DE

MAN.DE

SIE.DE

TKA.DE

Tree 1

t(0.29)

t(0.57)

F(0.33)

t(0.21)

t(0.25)t(0.26)

DPW.DE

EOAN.DE

DTE.DE

IFX.DE

LHA.DE

RWE.DE

SAP.DE

Tree 1

SG(0.27)

t(0.28)

t(0.27)

ADS.DE

BEI.DE

HEN3.DE

MEO.DE

C-vines give

• DAI.DE for auto,• BAS.DE for chem,• DBK.DE for fin,• SIE.DE for indust,• RWE.DE for other,• HEN3.DE for retail,

as first node, we use them as representative of their group

12

Page 13: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

Section 10.4 Dependence structure among representatives

Figure 10.4: DAX: Upper: pairs plots of copula data, diagonal: histogram ofcopula margins, lower: normalized contour plots for the representive companiesof the sectors

Selecting the appropriate u data

ticker.sum<-c("DAI.DE","BAS.DE","DBK.DE","SIE.DE","RWE.DE","HEN3.DE")u.sum<-udata[,ticker.sum]u.sum<-as.copuladata(u.sum)

Figure 10.4: DAX: Upper: pairs plots of copula data, diagonal: histogram ofcopula margins, lower: normalized contour plots for the representive companiesof the sectors

pairs(u.sum)

13

Page 14: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

DAI.DE

0.39 0.42 0.43 0.29 0.29

z1

z 2

BAS.DE

0.40 0.46 0.35 0.30

z1

z 2

z1

z 2

DBK.DE

0.44 0.35 0.28

z1

z 2

z1

z 2

z1

z 2

SIE.DE

0.33 0.30

z1

z 2

z1

z 2

z1

z 2

z1

z 2

RWE.DE

0.22

z1

z 2

z1

z 2

z1

z 2

z1

z 2

z1

z 2

HEN3.DE

Fitting R-vines allowing for all pair copula families (Sequential and joint ml estimation)

fit.rv.sum=RVineStructureSelect(u.sum, familyset=NA, selectioncrit="AIC",indeptest=FALSE, level=0.05,type="RVine")

fit.rv.sum.mle=RVineMLE(u.sum,fit.rv.sum)

## iter 10 value -2142.910644## iter 20 value -2143.902089## iter 30 value -2143.947553## iter 40 value -2144.105360## iter 50 value -2144.146633## iter 60 value -2144.158747## iter 70 value -2144.212244

14

Page 15: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## iter 80 value -2144.226708## iter 90 value -2144.231724## iter 100 value -2144.259384## final value -2144.260392## converged

fit.rv.ind.sum=RVineStructureSelect(u.sum, familyset=NA, selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="RVine")

fit.rv.ind.sum.mle=RVineMLE(u.sum, fit.rv.ind.sum)

## iter 10 value -2141.363379## iter 20 value -2142.436284## iter 30 value -2142.598563## iter 40 value -2142.656682## iter 50 value -2142.686592## iter 60 value -2142.764439## iter 70 value -2142.854068## iter 80 value -2142.864206## iter 90 value -2142.869910## iter 100 value -2142.875691## iter 110 value -2142.886129## iter 120 value -2142.895636## final value -2142.897918## converged

Fitting R-vines allowing for only t and Gauss copula families

fit.trv.sum=RVineStructureSelect(u.sum, familyset=c(1,2), selectioncrit="AIC",indeptest=FALSE, level=0.05,type="RVine")

fit.trv.sum.mle=RVineMLE(u.sum,fit.trv.sum)

## iter 10 value -2140.407346## iter 20 value -2140.492647## final value -2140.493480## converged

fit.trv.ind.sum=RVineStructureSelect(u.sum, familyset=c(1,2), selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="RVine")

fit.trv.ind.sum.mle=RVineMLE(u.sum, fit.trv.ind.sum)

## iter 10 value -2139.217009## iter 20 value -2139.295293## final value -2139.295990## converged

Fitting R-vines allowing for only Gauss copula families

fit.grv.sum=RVineStructureSelect(u.sum, familyset=1, selectioncrit="AIC",indeptest=FALSE, level=0.05,type="RVine")

fit.grv.sum.mle=RVineMLE(u.sum,fit.grv.sum)

## final value -1952.742087## converged

15

Page 16: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

fit.grv.ind.sum=RVineStructureSelect(u.sum, familyset=1, selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="RVine")

fit.grv.ind.sum.mle=RVineMLE(u.sum, fit.grv.ind.sum)

## final value -1952.742087## converged

Fitting C-vines allowing for only t and Gauss copula families (Sequential and joint ml estima-tion)

fit.tcv.sum=RVineStructureSelect(u.sum, familyset=c(1,2), selectioncrit="AIC",indeptest=FALSE, level=0.05,type="CVine")

fit.tcv.sum.mle=RVineMLE(u.sum,fit.tcv.sum)

## iter 10 value -2139.021443## final value -2139.026098## converged

fit.tcv.ind.sum=RVineStructureSelect(u.sum, familyset=c(1,2), selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="CVine")

fit.tcv.ind.sum.mle=RVineMLE(u.sum, fit.tcv.ind.sum)

## iter 10 value -2137.801763## final value -2137.806331## converged

Fitting C-vines allowing for all pair copula families (Sequential and joint ml estimation)

fit.cv.sum=RVineStructureSelect(u.sum, familyset=NA, selectioncrit="AIC",indeptest=FALSE, level=0.05,type="CVine")

fit.cv.sum.mle=RVineMLE(u.sum,fit.cv.sum)

## iter 10 value -2158.339457## iter 20 value -2160.090029## iter 30 value -2160.387749## iter 40 value -2160.616153## iter 50 value -2160.662720## iter 60 value -2160.678996## iter 70 value -2160.698437## iter 80 value -2160.701437## iter 90 value -2160.704698## iter 100 value -2160.715159## iter 110 value -2160.728458## iter 120 value -2160.729505## final value -2160.729574## converged

fit.cv.ind.sum=RVineStructureSelect(u.sum, familyset=NA, selectioncrit="AIC",indeptest=TRUE, level=0.05,type ="CVine")

fit.cv.ind.sum.mle=RVineMLE(u.sum, fit.cv.ind.sum)

## iter 10 value -2158.339457## iter 20 value -2160.090029

16

Page 17: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## iter 30 value -2160.387749## iter 40 value -2160.616153## iter 50 value -2160.662720## iter 60 value -2160.678996## iter 70 value -2160.698437## iter 80 value -2160.701437## iter 90 value -2160.704698## iter 100 value -2160.715159## iter 110 value -2160.728458## iter 120 value -2160.729505## final value -2160.729574## converged

Fitting D-vines allowing for all pair copula families (Sequential and joint ml estimation)

Fix order to 5-6-1-3-4-2d = dim(u.sum)[2]M = 1 - abs(TauMatrix(u.sum))hamilton = insert_dummy(TSP(M),label="cut")sol = solve_TSP(hamilton,method="repetitive_nn")order = cut_tour(sol,"cut")order<-c(5,6,1,3,4,2)DVM= D2RVine(order,family=rep(0,d*(d-1)/2),par=rep(0,d*(d-1)/2))fit.dv.sum=RVineCopSelect(data=u.sum,familyset=NA,indeptest=FALSE,

level=0.05,Matrix=DVM$Matrix,selectioncrit="AIC")fit.dv.ind.sum=RVineCopSelect(data=u.sum,familyset=NA,indeptest=TRUE,

level=0.05,Matrix=DVM$Matrix,selectioncrit="AIC")fit.dv.sum.mle=RVineMLE(u.sum,fit.dv.sum)

## iter 10 value -2157.813832## iter 20 value -2158.209618## iter 30 value -2158.613747## iter 40 value -2158.662415## iter 50 value -2158.797994## iter 60 value -2158.815933## iter 70 value -2158.995210## iter 80 value -2159.118900## iter 90 value -2159.145982## iter 100 value -2159.177734## iter 110 value -2159.190981## iter 120 value -2159.194774## iter 130 value -2159.200723## iter 140 value -2159.215668## iter 150 value -2159.222026## iter 160 value -2159.236412## final value -2159.236456## converged

fit.dv.ind.sum.mle=RVineMLE(u.sum,fit.dv.ind.sum)

## iter 10 value -2157.813832## iter 20 value -2158.209618## iter 30 value -2158.613747## iter 40 value -2158.662415

17

Page 18: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## iter 50 value -2158.797994## iter 60 value -2158.815933## iter 70 value -2158.995210## iter 80 value -2159.118900## iter 90 value -2159.145982## iter 100 value -2159.177734## iter 110 value -2159.190981## iter 120 value -2159.194774## iter 130 value -2159.200723## iter 140 value -2159.215668## iter 150 value -2159.222026## iter 160 value -2159.236412## final value -2159.236456## converged

Fitting D-vines allowing for only t and Gauss copula families (Sequential and joint ml estima-tion)

Fix order to 5-6-1-3-4-2d = dim(u.sum)[2]M = 1 - abs(TauMatrix(u.sum))hamilton = insert_dummy(TSP(M),label="cut")sol = solve_TSP(hamilton,method="repetitive_nn")order = cut_tour(sol,"cut")order<-c(5,6,1,3,4,2)DVM= D2RVine(order,family=rep(0,d*(d-1)/2),par=rep(0,d*(d-1)/2))fit.tdv.sum=RVineCopSelect(data=u.sum,familyset=c(1,2),indeptest=FALSE,

level=0.05,Matrix=DVM$Matrix,selectioncrit="AIC")fit.tdv.ind.sum=RVineCopSelect(data=u.sum,familyset=c(1,2),indeptest=TRUE,

level=0.05,Matrix=DVM$Matrix,selectioncrit="AIC")fit.tdv.sum.mle=RVineMLE(u.sum,fit.tdv.sum)

## iter 10 value -2128.654589## iter 20 value -2128.762883## final value -2128.770324## converged

fit.tdv.ind.sum.mle=RVineMLE(u.sum,fit.tdv.ind.sum)

## iter 10 value -2128.654589## iter 20 value -2128.762883## final value -2128.770324## converged

Figure 10.5: DAX: R-vine trees allowing for all pair copula families for sectorrepresentatives together with their pair copula family and the fitted Kendall’s τvalue for each edge based on joint maximum likelihood

bigpar(2,3)junk<-fit.rv.sum.mle$RVMjunk[[5]]<-c("DAI" , "BAS", "DBK", "SIE", "RWE" , "HEN3")plot(junk,tree="ALL",edge.labels="family-tau",type=1)

18

Page 19: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

Tree 1

t(0.42)

t(0.34)

t(0.44)

t(0.46)

t(0.3)

DAI

RWE

DBK

SIE

BAS

HEN3

Tree 2

t(0.23)

F(0.16)

SBB8(0.2)F(0.16)

SIE,DAI

BAS,RWE

SIE,DBK

BAS,SIE

HEN3,BAS

Tree 3

t(0.13)

F(0.15)

BB1(0.08)

DBK,DAI ; SIE

SIE,RWE ; BAS

BAS,DBK ; SIE

HEN3,SIE ; BAS

Tree 4

F(0.1) SBB1(0.05)

BAS,DAI ; DBK,SIEDBK,RWE ; SIE,BAS

HEN3,DBK ; BAS,SIE

Tree 5

F(0.03)

HEN3,DAI ; BAS,DBK,SIE

HEN3,RWE ; DBK,SIE,BAS

Figure 10.5: DAX: R-vine trees allowing only for Student t or Gaussian copulas(bottom) for sector representatives together with their pair copula family andthe fitted Kendall’s τ value for each edge based on joint maximum likelihood

bigpar(2,3)junk<-fit.trv.sum.mle$RVMjunk[[5]]<-c("DAI" , "BAS", "DBK", "SIE", "RWE" , "HEN3")plot(junk,tree="ALL",edge.labels="family-tau",type=1)

19

Page 20: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

Tree 1

t(0.43)

t(0.35)

t(0.44)

t(0.46)

t(0.31)

DAI

RWE

DBK

SIE

BAS

HEN3

Tree 2

t(0.23)

t(0.15)

t(0.19) t(0.15)

SIE,DAI

BAS,RWE

SIE,DBK

BAS,SIE

HEN3,BAS

Tree 3

t(0.13)

t(0.14)

t(0.08)

DBK,DAI ; SIE

SIE,RWE ; BAS

BAS,DBK ; SIE

HEN3,SIE ; BAS

Tree 4

N(0.09)

t(0.05)

BAS,DAI ; DBK,SIE

DBK,RWE ; SIE,BAS

HEN3,DBK ; BAS,SIE

Tree 5

N(0.02)

HEN3,DAI ; BAS,DBK,SIE

HEN3,RWE ; DBK,SIE,BAS

Figure 10.6: DAX: Fitted R-vine normalized contour for sector representativesallowing forall pair copulas (rv) based on joint maximum likelihood (node ab-breviations: 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE,5 <-> RWE.DE, 6 <-> HEN3.DE)

junk<-fit.rv.sum.mle$RVMjunk[[5]]<-c("DAI" , "BAS", "DBK", "SIE", "RWE" , "HEN3")contour(junk)

20

Page 21: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

5,1 ; 6,2,3,4

6,1 ; 2,3,4 6,5 ; 3,4,2

2,1 ; 3,4 3,5 ; 4,2 6,3 ; 2,4

3,1 ; 4 4,5 ; 2 2,3 ; 4 6,4 ; 2

4,1 2,5 4,3 2,4 6,2

Table 10.3: DAX: Sequential parameter estimates (par and if necessary par2)togetherwith implied Kendall’s τ (tau), upper (utd) and lower (ltd) tail depen-dence coefficient estimates for the R-vine copula (allowing for all implementedpair copula families) (node abbreviations: 1 = DAI.DE, 2 = BAS.DE, 3 =DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE)

summary(fit.rv.sum)

## tree edge | family cop par par2 | tau utd ltd## ----------------------------------------------------------------## 1 4,1 | 2 t 0.61 5.68 | 0.42 0.25 0.25## 2,5 | 2 t 0.51 6.37 | 0.34 0.17 0.17

21

Page 22: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## 4,3 | 2 t 0.63 5.56 | 0.44 0.27 0.27## 2,4 | 2 t 0.66 4.47 | 0.46 0.33 0.33## 6,2 | 2 t 0.45 8.32 | 0.30 0.09 0.09## 2 3,1;4 | 2 t 0.35 9.19 | 0.23 0.05 0.05## 4,5;2 | 5 F 1.53 0.00 | 0.17 - -## 2,3;4 | 20 SBB8 2.33 0.71 | 0.20 - -## 6,4;2 | 5 F 1.50 0.00 | 0.16 - -## 3 2,1;3,4 | 2 t 0.20 12.98 | 0.13 0.01 0.01## 3,5;4,2 | 5 F 1.36 0.00 | 0.15 - -## 6,3;2,4 | 7 BB1 0.07 1.05 | 0.08 0.06 0.00## 4 6,1;2,3,4 | 5 F 0.93 0.00 | 0.10 - -## 6,5;3,4,2 | 17 SBB1 0.07 1.01 | 0.05 0.00 0.02## 5 5,1;6,2,3,4 | 5 F 0.25 0.00 | 0.03 - -## ---## type: R-vine logLik: 2142.09 AIC: -4234.17 BIC: -4098.84## ---## 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE,## 6 <-> HEN3.DE

#print(fit.rv.sum.mle)#summary(fit.rv.ind.sum)#print(fit.rv.ind.sum.mle)

Table 10.3: DAX: Sequential parameter estimates (par and if necessary par2)togetherwith implied Kendall’s τ (tau), upper (utd) and lower (ltd) tail de-pendence coefficient estimates for the R-vine copula with only Student t andGaussian paircopulas (node abbreviations: 1 <-> DAI.DE, 2 <-> BAS.DE, 3<-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE)

summary(fit.trv.sum)

## tree edge | family cop par par2 | tau utd ltd## ---------------------------------------------------------------## 1 4,1 | 2 t 0.61 5.68 | 0.42 0.25 0.25## 2,5 | 2 t 0.51 6.37 | 0.34 0.17 0.17## 4,3 | 2 t 0.63 5.56 | 0.44 0.27 0.27## 2,4 | 2 t 0.66 4.47 | 0.46 0.33 0.33## 6,2 | 2 t 0.45 8.32 | 0.30 0.09 0.09## 2 3,1;4 | 2 t 0.35 9.19 | 0.23 0.05 0.05## 4,5;2 | 2 t 0.23 12.07 | 0.15 0.01 0.01## 2,3;4 | 2 t 0.29 14.42 | 0.19 0.01 0.01## 6,4;2 | 2 t 0.23 21.27 | 0.15 0.00 0.00## 3 2,1;3,4 | 2 t 0.20 13.77 | 0.13 0.01 0.01## 3,5;4,2 | 2 t 0.22 14.83 | 0.14 0.01 0.01## 6,3;2,4 | 2 t 0.13 17.72 | 0.08 0.00 0.00## 4 6,1;2,3,4 | 1 N 0.14 0.00 | 0.09 - -## 6,5;3,4,2 | 2 t 0.08 30.00 | 0.05 0.00 0.00## 5 5,1;6,2,3,4 | 1 N 0.04 0.00 | 0.02 - -## ---## type: R-vine logLik: 2137.66 AIC: -4219.32 BIC: -4067.74## ---## 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE,

22

Page 23: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## 6 <-> HEN3.DE

#print(fit.trv.sum.mle)#summary(fit.trv.ind.sum)#print(fit.trv.ind.sum.mle)

Figure 10.7: DAX: C-vine trees for sector representatives together with theirchosen pair copula families and the corresponding fitted Kendall’s τ values basedon joint maximum likelihood estimation

bigpar(2,3)junk<-fit.cv.sum.mle$RVMjunk[[5]]<-c("DAI" , "BAS", "DBK", "SIE", "RWE" , "HEN3")plot(junk,tree="ALL",edge.labels="family-tau",type=1)

Tree 1

t(0.42)

t(0.32)

t(0.46)

t(0.44)

SBB1(0.3)

DAI

RWE

BAS

DBK

SIE

HEN3

Tree 2

t(0.23)

F(0.21)

SBB8(0.21)

BB1(0.12)

SIE,DAI

SIE,RWE

SIE,BASSIE,DBK

HEN3,SIE

Tree 3

t(0.13)

F(0.17)F(0.14)

DBK,DAI ; SIE

DBK,RWE ; SIE

DBK,BAS ; SIE

HEN3,DBK ; SIE

Tree 4

F(0.11)

G(0.04)

BAS,DAI ; DBK,SIE

BAS,RWE ; DBK,SIEHEN3,BAS ; DBK,SIE

Tree 5

F(0.03)

HEN3,DAI ; BAS,DBK,SIE

HEN3,RWE ; BAS,DBK,SIE

Figure 10.7: DAX: D-vine trees for sector representatives together with theirchosen pair copula families and the corresponding fitted Kendall’s τ values basedon joint maximum likelihood estimation

bigpar(2,3)junk<-fit.dv.sum.mle$RVMjunk[[5]]<-c("DAI" , "BAS", "DBK", "SIE", "RWE" , "HEN3")plot(junk,tree="ALL",edge.labels="family-tau",type=1)

23

Page 24: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

Tree 1

t(0.46)

t(0.44)

t(0.41)

t(0.29)

t(0.23)

BASSIE

DBK

DAI

HEN3RWE

Tree 2

SBB8(0.2)

t(0.25)

t(0.14)

SBB8(0.23)

SIE,BAS

DBK,SIE

DAI,DBK

HEN3,DAI

RWE,HEN3

Tree 3

t(0.13)

F(0.14)

F(0.21)

DBK,BAS ; SIE

DAI,SIE ; DBKHEN3,DBK ; DAI

RWE,DAI ; HEN3

Tree 4

F(0.12)

SBB8(0.12)

DAI,BAS ; DBK,SIE

HEN3,SIE ; DAI,DBK

RWE,DBK ; HEN3,DAI

Tree 5

F(0.14)

HEN3,BAS ; DAI,DBK,SIE

RWE,SIE ; HEN3,DAI,DBK

Figure 10.8: DAX: Fitted D-vine normalized contours for sector representativesallowing for all pair copulas based on joint maximum likelihood (node abbrevia-tions: 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <->DBK.DE, 4 <-> SIE.DE, 5 <->RWE.DE, 6 <-> HEN3.DE)

junk<-fit.cv.sum.mle$RVMjunk[[5]]<-c("DAI" , "BAS", "DBK", "SIE", "RWE" , "HEN3")contour(junk)

24

Page 25: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

5,1 ; 6,2,3,4

6,1 ; 2,3,4 6,5 ; 2,3,4

2,1 ; 3,4 2,5 ; 3,4 6,2 ; 3,4

3,1 ; 4 3,5 ; 4 3,2 ; 4 6,3 ; 4

4,1 4,5 4,2 4,3 6,4

Figure 10.8: DAX: Fitted D-vine normalized contours for sector representativesallowing for all pair copulas based on joint maximum likelihood (node abbrevia-tions: 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <->DBK.DE, 4 <-> SIE.DE, 5 <->RWE.DE, 6 <-> HEN3.DE)

junk<-fit.dv.sum.mle$RVMjunk[[5]]<-c("DAI" , "BAS", "DBK", "SIE", "RWE" , "HEN3")contour(junk)

25

Page 26: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

5,2 ; 6,1,3,4

6,2 ; 1,3,4 5,4 ; 6,1,3

1,2 ; 3,4 6,4 ; 1,3 5,3 ; 6,1

3,2 ; 4 1,4 ; 3 6,3 ; 1 5,1 ; 6

4,2 3,4 1,3 6,1 5,6

Table 10.4: DAX: Sequential parameter estimates (par and if necessary par2)together with implied Kendall’s τ (tau), upper (utd) and lower (ltd) tail de-pendence coefficients for the C-vine specification allowing all implemented paircopulas. (node abbreviations: 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE,4<-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE)

summary(fit.cv.sum)

## tree edge | family cop par par2 | tau utd ltd## ----------------------------------------------------------------## 1 4,1 | 2 t 0.61 5.68 | 0.42 0.25 0.25## 4,5 | 2 t 0.49 5.20 | 0.32 0.19 0.19

26

Page 27: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## 4,2 | 2 t 0.66 4.47 | 0.46 0.33 0.33## 4,3 | 2 t 0.63 5.56 | 0.44 0.27 0.27## 6,4 | 17 SBB1 0.07 1.36 | 0.29 0.00 0.34## 2 3,1;4 | 2 t 0.35 9.19 | 0.23 0.05 0.05## 3,5;4 | 5 F 1.91 0.00 | 0.21 - -## 3,2;4 | 20 SBB8 2.33 0.71 | 0.20 - -## 6,3;4 | 7 BB1 0.11 1.07 | 0.11 0.09 0.00## 3 2,1;3,4 | 2 t 0.20 12.98 | 0.13 0.01 0.01## 2,5;3,4 | 5 F 1.49 0.00 | 0.16 - -## 6,2;3,4 | 5 F 1.25 0.00 | 0.14 - -## 4 6,1;2,3,4 | 5 F 0.99 0.00 | 0.11 - -## 6,5;2,3,4 | 4 G 1.05 0.00 | 0.04 0.06 -## 5 5,1;6,2,3,4 | 5 F 0.30 0.00 | 0.03 - -## ---## type: C-vine logLik: 2156.96 AIC: -4265.92 BIC: -4136## ---## 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE,## 6 <-> HEN3.DE

Table 10.4: DAX: Sequential parameter estimates (par and if necessary par2)together with implied Kendall’s τ (tau), upper (utd) and lower (ltd) tail de-pendence coefficients for the D-vine specification allowing all implemented paircopulas. (node abbreviations: 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE,4<-> SIE.DE, 5 <-> RWE.DE, 6 <-> HEN3.DE)

summary(fit.dv.sum)

## tree edge | family cop par par2 | tau utd ltd## ----------------------------------------------------------------## 1 4,2 | 2 t 0.66 4.47 | 0.46 0.33 0.33## 3,4 | 2 t 0.63 5.56 | 0.44 0.27 0.27## 1,3 | 2 t 0.61 6.03 | 0.42 0.23 0.23## 6,1 | 2 t 0.44 11.77 | 0.29 0.04 0.04## 5,6 | 2 t 0.34 9.26 | 0.22 0.05 0.05## 2 3,2;4 | 20 SBB8 2.33 0.71 | 0.20 - -## 1,4;3 | 2 t 0.37 9.30 | 0.24 0.05 0.05## 6,3;1 | 2 t 0.21 11.90 | 0.14 0.01 0.01## 5,1;6 | 20 SBB8 3.12 0.60 | 0.23 - -## 3 1,2;3,4 | 2 t 0.20 13.15 | 0.13 0.01 0.01## 6,4;1,3 | 5 F 1.29 0.00 | 0.14 - -## 5,3;6,1 | 5 F 2.03 0.00 | 0.22 - -## 4 6,2;1,3,4 | 5 F 1.04 0.00 | 0.11 - -## 5,4;6,1,3 | 20 SBB8 2.05 0.61 | 0.12 - -## 5 5,2;6,1,3,4 | 5 F 1.29 0.00 | 0.14 - -## ---## type: D-vine logLik: 2155.92 AIC: -4259.84 BIC: -4119.09## ---## 1 <-> DAI.DE, 2 <-> BAS.DE, 3 <-> DBK.DE, 4 <-> SIE.DE, 5 <-> RWE.DE,## 6 <-> HEN3.DE

27

Page 28: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

Section 10.5 Model comparison

Table 10.5: DAX: Estimated log likelihood (loglik), number of parameters (df),AIC and BIC for all fitted models (seq=sequential estimation, mle=maximumlikelihood, ind= asymptotic α level independence tests used, all= all imple-mented pair copula families used, t = only Student t and Gaussian pair copulasused, G = only Gaussian copulas used)

Comparing R-vines

model.out<-function(fit=fit.rv,data=ured,digits=2){df<-sum(abs(fit$par)>0)+sum(fit$par2>0)out<-round(c(RVineLogLik(data, fit)$loglik,df, RVineAIC(data,fit)$AIC,RVineBIC(data,fit)$BIC),digits)names(out)<-c("loglik","par","AIC","BIC")out}out.table<-rbind(model.out(fit=fit.rv.sum,data=u.sum),model.out(fit=fit.rv.sum.mle$RVM,data=u.sum),model.out(fit=fit.rv.ind.sum,data=u.sum),model.out(fit=fit.rv.ind.sum.mle$RVM,data=u.sum),model.out(fit=fit.trv.sum,data=u.sum),model.out(fit=fit.trv.sum.mle$RVM,data=u.sum),model.out(fit=fit.trv.ind.sum,data=u.sum),model.out(fit=fit.trv.ind.sum.mle$RVM,data=u.sum))row.names(out.table)<-c("R-vine-seq-all","R-vine-mle-all","R-vine-ind-seq-all",

"R-vine-ind-mle-all","R-vine-seq-t","R-vine-mle-t","R-vine-ind-seq-t","R-vine-ind-mle-t")

out.table

## loglik par AIC BIC## R-vine-seq-all 2142.09 25 -4234.17 -4098.84## R-vine-mle-all 2144.26 25 -4238.52 -4103.19## R-vine-ind-seq-all 2140.81 24 -4233.62 -4103.70## R-vine-ind-mle-all 2142.90 24 -4237.80 -4107.88## R-vine-seq-t 2137.66 28 -4219.32 -4067.74## R-vine-mle-t 2140.49 28 -4224.99 -4073.41## R-vine-ind-seq-t 2136.54 27 -4219.08 -4072.92## R-vine-ind-mle-t 2139.30 27 -4224.59 -4078.43

Comparing Gaussian vines

out.table.grv<-rbind(model.out(fit=fit.grv.sum,data=u.sum),model.out(fit=fit.grv.sum.mle$RVM,data=u.sum),model.out(fit=fit.grv.ind.sum,data=u.sum),model.out(fit=fit.grv.ind.sum.mle$RVM,data=u.sum))row.names(out.table.grv)<-c("G-vine-seq","G-vine-mle","G-vine-ind-seq","G-vine-ind-mle")out.table.grv

28

Page 29: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## loglik par AIC BIC## G-vine-seq 1952.74 15 -3875.48 -3794.28## G-vine-mle 1952.74 15 -3875.48 -3794.28## G-vine-ind-seq 1952.74 15 -3875.48 -3794.28## G-vine-ind-mle 1952.74 15 -3875.48 -3794.28

Comparing C-vines

out.cv.table<-rbind(model.out(fit=fit.cv.sum,data=u.sum),model.out(fit=fit.cv.sum.mle$RVM,data=u.sum),model.out(fit=fit.cv.ind.sum,data=u.sum),model.out(fit=fit.cv.ind.sum.mle$RVM,data=u.sum),model.out(fit=fit.tcv.sum,data=u.sum),model.out(fit=fit.tcv.sum.mle$RVM,data=u.sum),model.out(fit=fit.tcv.ind.sum,data=u.sum),model.out(fit=fit.tcv.ind.sum.mle$RVM,data=u.sum))row.names(out.cv.table)<-c("C-vine-seq-all","C-vine-mle-all",

"C-vine-ind-seq-all","C-vine-ind-mle-all","C-vine-seq-t","C-vine-mle-t","C-vine-ind-seq-t","C-vine-ind-mle-t")

out.cv.table

## loglik par AIC BIC## C-vine-seq-all 2156.96 24 -4265.92 -4136.00## C-vine-mle-all 2160.73 24 -4273.46 -4143.54## C-vine-ind-seq-all 2156.96 24 -4265.92 -4136.00## C-vine-ind-mle-all 2160.73 24 -4273.46 -4143.54## C-vine-seq-t 2135.58 27 -4217.16 -4071.00## C-vine-mle-t 2139.03 27 -4224.05 -4077.89## C-vine-ind-seq-t 2134.44 26 -4216.89 -4076.14## C-vine-ind-mle-t 2137.81 26 -4223.61 -4082.87

Comparing D-vines

out.dv.table<-rbind(model.out(fit=fit.dv.sum,data=u.sum),model.out(fit=fit.dv.sum.mle$RVM,data=u.sum),model.out(fit=fit.dv.ind.sum,data=u.sum),model.out(fit=fit.dv.ind.sum.mle$RVM,data=u.sum),model.out(fit=fit.tdv.sum,data=u.sum),model.out(fit=fit.tdv.sum.mle$RVM,data=u.sum),model.out(fit=fit.tdv.ind.sum,data=u.sum),model.out(fit=fit.tdv.ind.sum.mle$RVM,data=u.sum))row.names(out.dv.table)<-c("D-vine-seq-all","D-vine-mle-all",

"D-vine-ind-seq-all","D-vine-ind-mle-all","D-vine-seq-t","D-vine-mle-t", "D-vine-ind-seq-t","D-vine-ind-mle-t")

out.dv.table

## loglik par AIC BIC## D-vine-seq-all 2155.92 26 -4259.84 -4119.09## D-vine-mle-all 2159.24 26 -4266.47 -4125.73

29

Page 30: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

## D-vine-ind-seq-all 2155.92 26 -4259.84 -4119.09## D-vine-ind-mle-all 2159.24 26 -4266.47 -4125.73## D-vine-seq-t 2125.26 29 -4192.51 -4035.53## D-vine-mle-t 2128.77 29 -4199.54 -4042.55## D-vine-ind-seq-t 2125.26 29 -4192.51 -4035.53## D-vine-ind-mle-t 2128.77 29 -4199.54 -4042.55

Table 10.6: DAX: Vuong test model comparison within each vine class usingjoint maximum likelihood estimation

Vuong tests for R-Vines

vuong.p<-c(RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.trv.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.rv.ind.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.rv.ind.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.trv.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$p.value)

vuong.p.aic<-c(RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.trv.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.rv.ind.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.rv.ind.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.trv.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$p.value.Akaike)

vuong.p.bic<-c(RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.trv.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.rv.ind.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.rv.ind.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.trv.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$p.value.Schwarz)

vuong.stat<-c(RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.trv.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.rv.ind.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.rv.ind.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.trv.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$statistic)

vuong.stat.aic<-c(RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.trv.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.rv.ind.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.rv.ind.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.trv.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$statistic.Akaike)

vuong.stat.bic<-c(RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.trv.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.rv.ind.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.rv.sum.mle$RVM,fit.rv.ind.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.trv.sum.mle$RVM,fit.trv.ind.sum.mle$RVM)$statistic.Schwarz)

vuong.table<-round(cbind(vuong.stat,vuong.p,vuong.stat.aic,vuong.p.aic,vuong.stat.bic,vuong.p.bic),digits=2)

30

Page 31: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

rownames(vuong.table)<-c("rv all vs t","rv ind-all vs ind-t,","rv all vs ind","rv t vs ind t")

colnames(vuong.table)<-c("stat","p.value","stat-aic","p-value","stat-bic","p-value")vuong.table

## stat p.value stat-aic p-value stat-bic p-value## rv all vs t 0.40 0.69 0.71 0.48 1.57 0.12## rv ind-all vs ind-t, 0.38 0.70 0.70 0.48 1.56 0.12## rv all vs ind 0.80 0.42 0.21 0.83 -1.38 0.17## rv t vs ind t 0.78 0.44 0.13 0.90 -1.63 0.10

Vuong tests for C-Vines

vuong.p.cv<-c(RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.tcv.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.cv.ind.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.cv.ind.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.tcv.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$p.value)

vuong.p.aic.cv<-c(RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.tcv.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.cv.ind.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.cv.ind.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.tcv.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$p.value.Akaike)

vuong.p.bic.cv<-c(RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.tcv.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.cv.ind.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.cv.ind.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.tcv.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$p.value.Schwarz)

vuong.stat.cv<-c(RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.tcv.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.cv.ind.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.cv.ind.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.tcv.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$statistic)

vuong.stat.aic.cv<-c(RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.tcv.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.cv.ind.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.cv.ind.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.tcv.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$statistic.Akaike)

vuong.stat.bic.cv<-c(RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.tcv.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.cv.ind.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.cv.sum.mle$RVM,fit.cv.ind.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.tcv.sum.mle$RVM,fit.tcv.ind.sum.mle$RVM)$statistic.Schwarz)

vuong.table.cv<-round(cbind(vuong.stat.cv,vuong.p.cv,vuong.stat.aic.cv,vuong.p.aic.cv,

31

Page 32: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

vuong.stat.bic.cv,vuong.p.bic.cv),digits=2)rownames(vuong.table.cv)<-c("cv all vs t","cv ind-all vs ind-t,",

"cv all vs ind","cv t vs ind t")colnames(vuong.table.cv)<-c("stat","p.value","stat-aic","p-value","stat-bic","p-value")vuong.table.cv

## stat p.value stat-aic p-value stat-bic p-value## cv all vs t 2.14 0.03 2.43 0.02 3.23 0.00## cv ind-all vs ind-t, 2.22 0.03 2.41 0.02 2.94 0.00## cv all vs ind 0.00 1.00 0.00 1.00 0.00 1.00## cv t vs ind t 0.79 0.43 0.14 0.89 -1.60 0.11

Vuong tests for D-Vines

vuong.p.dv<-c(RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.tdv.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.dv.ind.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.dv.ind.sum.mle$RVM)$p.value,RVineVuongTest(u.sum, fit.tdv.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$p.value)

vuong.p.aic.dv<-c(RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.tdv.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.dv.ind.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.dv.ind.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum, fit.tdv.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$p.value.Akaike)

vuong.p.bic.dv<-c(RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.tdv.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.dv.ind.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.dv.ind.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum, fit.tdv.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$p.value.Schwarz)

vuong.stat.dv<-c(RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.tdv.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.dv.ind.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.dv.ind.sum.mle$RVM)$statistic,RVineVuongTest(u.sum, fit.tdv.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$statistic)

vuong.stat.aic.dv<-c(RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.tdv.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.dv.ind.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.dv.ind.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum, fit.tdv.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$statistic.Akaike)

vuong.stat.bic.dv<-c(RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.tdv.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.dv.ind.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.dv.sum.mle$RVM,fit.dv.ind.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum, fit.tdv.sum.mle$RVM,fit.tdv.ind.sum.mle$RVM)$statistic.Schwarz)

32

Page 33: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

vuong.table.dv<-round(cbind(vuong.stat.dv,vuong.p.dv,vuong.stat.aic.dv,vuong.p.aic.dv,vuong.stat.bic.dv,vuong.p.bic.dv),digits=2)rownames(vuong.table.dv)<-c("dv all vs t","dv ind-all vs ind-t,",

"dv all vs ind","dv t vs ind t")colnames(vuong.table.dv)<-c("stat","p.value","stat-aic","p-value","stat-bic","p-value")vuong.table.dv

## stat p.value stat-aic p-value stat-bic p-value## dv all vs t 2.59 0.01 2.84 0 3.53 0## dv ind-all vs ind-t, 2.59 0.01 2.84 0 3.53 0## dv all vs ind 0.00 1.00 0.00 1 0.00 1## dv t vs ind t 0.00 1.00 0.00 1 0.00 1

Table 10.7: DAX: Vuong test model comparison between each vine class usingjoint maximum likelihood estimation allowing for all implemented pair copulafamilies and without the independence test (2.8)

vuong.p<-c(RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.cv.sum.mle$RVM)$p.value,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.dv.sum.mle$RVM)$p.value,RVineVuongTest(u.sum,fit.cv.sum.mle$RVM,fit.dv.sum.mle$RVM)$p.value,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.grv.sum.mle$RVM)$p.value)

vuong.p.aic<-c(RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.cv.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.dv.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum,fit.cv.sum.mle$RVM,fit.dv.sum.mle$RVM)$p.value.Akaike,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.grv.sum.mle$RVM)$p.value.Akaike)

vuong.p.bic<-c(RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.cv.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.dv.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum,fit.cv.sum.mle$RVM,fit.dv.sum.mle$RVM)$p.value.Schwarz,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.grv.sum.mle$RVM)$p.value.Schwarz)

vuong.stat<-c(RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.cv.sum.mle$RVM)$statistic,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.dv.sum.mle$RVM)$statistic,RVineVuongTest(u.sum,fit.cv.sum.mle$RVM,fit.dv.sum.mle$RVM)$statistic,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.grv.sum.mle$RVM)$statistic)

vuong.stat.aic<-c(RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.cv.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.dv.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum,fit.cv.sum.mle$RVM,fit.dv.sum.mle$RVM)$statistic.Akaike,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.grv.sum.mle$RVM)$statistic.Akaike)

vuong.stat.bic<-c(

33

Page 34: R-code for Chapter 10: Case study: Dependence among German ... · R-code for Chapter 10: Case study: Dependence among German DAX stocks Claudia Czado 04 March, 2019 Contents RequiredRpackages

RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.cv.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.dv.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum,fit.cv.sum.mle$RVM,fit.dv.sum.mle$RVM)$statistic.Schwarz,RVineVuongTest(u.sum,fit.rv.sum.mle$RVM,fit.grv.sum.mle$RVM)$statistic.Schwarz)

vuong.table.rcdv<-round(cbind(vuong.stat,vuong.p,vuong.stat.aic,vuong.p.aic,vuong.stat.bic, vuong.p.bic),digits=2)rownames(vuong.table.rcdv)<-c("rv all vs dv all","rv all vs cv all",

"cv all vs dv all", "rv all vs gv")colnames(vuong.table.rcdv)<-c("stat","p.value","stat-aic","p-value",

"stat-bic","p-value")vuong.table.rcdv

## stat p.value stat-aic p-value stat-bic p-value## rv all vs dv all -1.44 0.15 -1.53 0.13 -1.77 0.08## rv all vs cv all -1.21 0.23 -1.13 0.26 -0.91 0.36## cv all vs dv all 0.13 0.89 0.31 0.75 0.80 0.42## rv all vs gv 6.70 0.00 6.35 0.00 5.40 0.00

34