Description Usage Arguments Details Author(s) References See Also Examples
calculates MCA coskewness and cokurtosis matrices
1 2 3 |
R |
an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns |
k |
the number of components to use |
as.mat |
TRUE/FALSE whether to return the full moment matrix or only the vector with the unique elements (the latter is advised for speed), default TRUE |
... |
any other passthru parameters |
The coskewness and cokurtosis matrices are defined as the matrices of dimension p x p^2 and p x p^3 containing the third and fourth order central moments. They are useful for measuring nonlinear dependence between different assets of the portfolio and computing modified VaR and modified ES of a portfolio.
MCA is a generalization of PCA to higher moments. The principal components in MCA are the ones that maximize the coskewness and cokurtosis present when projecting onto these directions. It was introduced by Lim and Morton (2007) and applied to financial returns data by Jondeau and Rockinger (2017)
If a coskewness matrix (argument M3) or cokurtosis matrix (argument M4) is passed in using ..., then MCA is performed on the given comoment matrix instead of the sample coskewness or cokurtosis matrix.
Dries Cornilly
Lim, Hek-Leng and Morton, Jason. 2007. Principal Cumulant Component Analysis. working paper
Jondeau, Eric and Jurczenko, Emmanuel. 2017. Moment Component Analysis: An Illustration With International Stock Markets. Journal of Business and Economic Statistics
CoMoments
ShrinkageMoments
StructuredMoments
EWMAMoments
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | data(edhec)
# coskewness matrix based on two components
M3mca <- M3.MCA(edhec, k = 2)$M3mca
# screeplot MCA
M3dist <- M4dist <- rep(NA, ncol(edhec))
M3S <- M3.MM(edhec) # sample coskewness estimator
M4S <- M4.MM(edhec) # sample cokurtosis estimator
for (k in 1:ncol(edhec)) {
M3MCA_list <- M3.MCA(edhec, k)
M4MCA_list <- M4.MCA(edhec, k)
M3dist[k] <- sqrt(sum((M3S - M3MCA_list$M3mca)^2))
M4dist[k] <- sqrt(sum((M4S - M4MCA_list$M4mca)^2))
}
par(mfrow = c(2, 1))
plot(1:ncol(edhec), M3dist)
plot(1:ncol(edhec), M4dist)
par(mfrow = c(1, 1))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.