Description Usage Arguments Details Value Note Author(s) References See Also Examples
View source: R/conditional_correlations.R
Computes conditional correlations based on multivariate volatility models. Currently only implemented for objects of class MultiEWMA
.
1 2 3 |
object |
Object of class |
diagonal |
Whether diagonal elements should be kept or not. |
duplicates |
Whether duplicate off-diagonal elements should be kept or not. |
... |
Arguments passed to methods. |
Depending on the application, diagonal elements may be deleted, since they are always equal to one. Likewise, duplicated off-diagonal elements may be deleted due to the symmetry of the variance-covariance matrix. However, keep in mind that both diagonal elements as well as duplicated off-diagonal elements may be necessary to compute the variance-covariance matrix.
rho |
A |
Note that the function is currently only implemented for objects of class MultiEWMA
. Implementation for other multivariate volatility models may be added in future releases.
Bernhard Eder
Danielsson (2011). Financial Risk Forecasting. Wiley. Chichester.
Jorion (2007). Value at Risk, 3rd. McGraw-Hill. New York.
Ruppert and Matteson (2015). Statistics and Data Analysis for Financial Engineering, 2nd. Springer. New York.
MultiEWMA
, varcov
, vola
, ccor
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | library("zoo")
# Load returns
data("CRSPday_zoo")
y <- CRSPday_zoo
# Compute multivariate EWMA model (RiskMetrics)
EWMA <- MultiEWMA(y, center = TRUE)
# Compute conditional correlations
EWMAcor <- ccor(EWMA, duplicates = TRUE, diagonal = TRUE)
head(EWMAcor)
# Compute conditional variance-covariance matrix
# Compute relevant volatilities
EWMAvola <- vola(EWMA, duplicates = TRUE, offdiagonal = FALSE)
# Initialize output object
TT <- dim(EWMAcor)[1]
c <- sqrt(dim(EWMAcor)[2])
VarCov <- matrix(NA, dim(EWMAcor)[1], dim(EWMAcor)[2])
# Compute conditional variance-covariance matrix
for(i in 1:TT){
VarCov[i, ] <- c(diag(as.numeric(EWMAvola[i, ]))
%*% matrix(as.numeric(EWMAcor[i, ]), c, c, byrow = TRUE)
%*% diag(as.numeric(EWMAvola[i, ]))
)
}
# Format output
VarCov <- zoo(VarCov, order.by = index(EWMAvola))
# Compare conditional variance-covariance matrices
head(VarCov)
head(EWMA$Variances)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.