dcc_fit: DCC fit (first and second steps)

View source: R/functions.R

dcc_fitR Documentation

DCC fit (first and second steps)

Description

Obtains the estimation of a variety of DCC models, using as univariate models both GARCH and GARCH-MIDAS specifications.

Usage

dcc_fit(
  r_t,
  univ_model = "sGARCH",
  distribution = "norm",
  MV = NULL,
  K = NULL,
  corr_model = "cDCC",
  lag_fun = "Beta",
  N_c = NULL,
  K_c = NULL,
  out_of_sample = NULL
)

Arguments

r_t

List of daily returns on which estimate a DCC model. Each daily return must be an 'xts' object. Note that the sample period of the returns should be the same. Otherwise, a merge is performed

univ_model

Specification of the univariate model. Valid choices are: some of the specifications used in the rugarch (ugarchspec) and rumidas (ugmfit) packages. More in detail, the models coming from rugarch are: model Valid models (currently implemented) are 'sGARCH', 'eGARCH', 'gjrGARCH', 'iGARCH', and 'csGARCH'. The models implemented from rumidas are: 'GM_skew','GM_noskew', 'DAGM_skew', and 'DAGM_noskew'

distribution

optional Distribution chosen for the univariate estimation. Valid choices are: "norm" (by default) and "std", respectively, for the Normal and Student's t distributions

MV

optional MIDAS variable to include in the univariate estimation, if the model specificied is a GARCH-MIDAS (GM, \insertCiteengle_ghysels_sohn_2013;textualdccmidas) or a Double Asymmetric GM (DAGM, \insertCiteengle_ghysels_sohn_2013;textualdccmidas). In the case of MIDAS-based models, please provide a list of the MIDAS variables obtained from the mv_into_mat function. If the same MV variable is used, then provide always a list, with the same (transformed) variable repeated

K

optional The number of lagged realization of MV variable to use, if 'univ_model' has a MIDAS term

corr_model

Correlation model used. Valid choices are: "cDCC" (the corrected DCC of \insertCiteaielli2013dynamic;textualdccmidas), "aDCC" (the asymmetric DCC model of \insertCitecappiello2006asymmetric;textualdccmidas), "DECO" (Dynamic equicorrelation of \insertCiteengle2012dynamic;textualdccmidas), and "DCCMIDAS" (the DCC-MIDAS of \insertCitecolacito2011component;textualdccmidas). By detault, it is "cDCC"

lag_fun

optional. Lag function to use. Valid choices are "Beta" (by default) and "Almon", for the Beta and Exponential Almon lag functions, respectively, if 'univ_model' has a MIDAS term and/or if 'corr_model' is "DCCMIDAS"

N_c

optional Number of (lagged) realizations to use for the standarized residuals forming the long-run correlation, if 'corr_model' is "DCCMIDAS"

K_c

optional Number of (lagged) realizations to use for the long-run correlation, if 'corr_model' is "DCCMIDAS"

out_of_sample

optional A positive integer indicating the number of periods before the last to keep for out of sample forecasting

Details

Function dcc_fit implements the two-steps estimation of the DCC models. In the first step, a variety of univariate models are considered. These models can be selected using for the parameter 'univ_model' one of the following choices: 'sGARCH' (standard GARCH of \insertCitebollerslev1986generalized;textualdccmidas), 'eGARCH' of \insertCitenelson1991conditional;textualdccmidas, 'gjrGARCH' of \insertCiteglosten_1993;textualdccmidas, 'iGARCH' (Integrated GARCH of \insertCiteengle1986modelling;textualdccmidas), 'csGARCH' (the Component GARCH of \insertCiteEngle_lee_1999;textualdccmidas), 'GM_noskew' and 'GM_skew' (the GARCH-MIDAS model of \insertCiteengle_ghysels_sohn_2013;textualdccmidas, respectively, without and with the asymmetric term in the short-run component), and 'DAGM_noskew' and 'DAGM_skew' (the Double Asymmetric GARCH-MIDAS model of \insertCiteamendola_candila_gallo_2019;textualdccmidas, respectively, without and with the asymmetric term in the short-run component).

Value

dcc_fit returns an object of class 'dccmidas'. The function summary.dccmidas can be used to print a summary of the results. Moreover, an object of class 'dccmidas' is a list containing the following components:

  • assets: Names of the assets considered.

  • model: Univariate model used in the first step.

  • est_univ_model: List of matrixes of estimated coefficients of the univariate model, with the QML \insertCiteBollerslev_Wooldridge_1992dccmidas standard errors.

  • corr_coef_mat: Matrix of estimated coefficients of the correlation model, with the QML standard errors.

  • mult_model: Correlation model used in the second step.

  • obs: The number of daily observations used for the estimation.

  • period: The period of the (in-sample) estimation.

  • H_t: Conditional covariance matrix, reported as an array.

  • R_t: Conditional correlation matrix, reported as an array.

  • R_t_bar: Conditional long-run correlation matrix, reported as an array, if the correlation matrix includes a MIDAS specification.

  • H_t_oos: Conditional covariance matrix, reported as an array, for the out-of-sample period, if present.

  • R_t_oos: Conditional correlation matrix, reported as an array, for the out-of-sample period, if present.

  • R_t_bar_oos: Conditional long-run correlation matrix, reported as an array, if the correlation matrix includes a MIDAS specification, for the out-of-sample period, if present.

  • est_time: Time of estimation.

  • Days: Days of the (in-)sample period.

  • llk: The value of the log-likelihood (for the second step) at the maximum.

References

\insertAllCited

Examples


require(xts)
# daily log-returns
# close to close daily log-returns
r_t_s<-diff(log(sp500['2010/2019'][,3]))
r_t_s[1]<-0
r_t_n<-diff(log(nasdaq['2010/2019'][,3]))
r_t_n[1]<-0
r_t_f<-diff(log(ftse100['2010/2019'][,3]))
r_t_f[1]<-0
db_m<-merge.xts(r_t_s,r_t_n,r_t_f)
db_m<-db_m[complete.cases(db_m),]
colnames(db_m)<-c("S&P500","NASDAQ","FTSE100")
# list of returns
r_t<-list(db_m[,1],db_m[,2],db_m[,3])
# MV transformation (same MV for all the stocks)
require(rumidas)
mv_m<-mv_into_mat(r_t[[1]],diff(indpro),K=12,"monthly")
# list of MV
MV<-list(mv_m,mv_m,mv_m)
# estimation
K_c<-144
N_c<-36
dccmidas_est<-dcc_fit(r_t,univ_model="GM_noskew",distribution="norm",
MV=MV,K=12,corr_model="DCCMIDAS",N_c=N_c,K_c=K_c)
dccmidas_est
summary.dccmidas(dccmidas_est)


dccmidas documentation built on May 29, 2024, 5:26 a.m.

Related to dcc_fit in dccmidas...