Using Copulas to Build Multivariate Normal and Student-t Distributions
Summary
The document explains how marginal distributions and a copula combine to define a multivariate distribution. Under Sklar’s theorem, each observation is first mapped through its marginal cumulative distribution functions to uniform values; a chosen copula then specifies their dependence. Conversely, copula samples can be transformed through inverse marginal distributions to generate asset returns with the desired marginal behavior.
Gaussian marginals paired with a Gaussian copula yield a multivariate normal distribution. Student-t marginals with a t-copula sharing the same degrees of freedom yield a multivariate t distribution, whose degrees of freedom affect tail behavior. The discussion also notes that copulas and continuous marginals can be mixed, such as pairing t marginals with a Gaussian copula. The MATLAB example sketches fitting t marginals, transforming observations to uniforms, fitting a t-copula, and simulating. It is a conceptual example rather than validated implementation guidance; parameterization and degrees-of-freedom handling should be checked against the software’s documentation.
Key ideas
- Sklar’s theorem constructs a joint distribution by applying a copula to marginal cumulative probabilities.
- Gaussian marginals linked by a Gaussian copula produce a multivariate normal distribution.
- Matching Student-t marginals and a t-copula with the same degrees of freedom produces a multivariate t distribution.
- Copulas allow dependence modeling to be separated from marginal distribution choices.
- The MATLAB sketch illustrates fitting and simulation but should be checked for software-specific parameter handling.
Tags
Full text
# How to combine Gaussian marginals with Gaussian copula to obtain multivariate normals?
# How to combine Gaussian marginals with Gaussian copula to obtain multivariate normals?
in the book "Numerical Methods and Optimization in Finance" I red the following: "Combining the Gaussian copula with Gaussian marginal gives a fancy way of expressing multivariate normals. However, the Gaussian copula can also be combined with other marginals, and Gaussian marginals can be linked via any copula”.
I would like to combine the Gaussian copula with Gaussian marginals, to obtain multivariate normals for my 7 asset classes. In addition, I would like to combine t-marginals with t-copula, to obtain a multivariate t-distribution. Does anyone know how to do this in MatLab?? I kinda struggle with this for quite some time!
This is how I approached the problem for the t marginals & t copula:
%% Define univariate process by t-distribution
for i = 1:nAssets
marginal{i} = fitdist(returns(:,i),'tlocationscale');
end
%% Copula calibration
for i = 1:nAssets
U(:,i) = marginal{i}.cdf(returns(:,i)); % transform margin to uniform
end
[rhoT, DoF] = copulafit('t', U, 'Method', 'ApproximateML');
%% Reverse transformation on each index
U = copularnd('t', rhoT, DoF, NumObs * NumSim);
for j = 1:nAssets
ExpReturns(:,:,j) = reshape(marginal{j}.icdf(U(:,j), DoF), NumObs, NumSim);
end
Does my approach make sense?? Any help is very much appreciated, especially on the MatLab code!!!
Best regards
## Answer by emcor (score 3)
https://quant.stackexchange.com/a/14777
You can express the Normal distribution by Sklar's Theorem in terms of Gaussian Marginals and Gaussian Copula as follows:
$$F(x_1,...,x_n)=C(F(x_1),...,F(x_n))=C^{Gau}(N(x_1),...,N(x_n))$$
So the distribution equals the copula function with the respective inverse marginals as arguments.
You can aswell combine any types of Copula and (continuous) different Marginals to form new distributions by this formula:
$$F(x_1,...,x_n)=C(F(x_1),...,F(x_n))$$
So for Student-t-Copula:
$$F(x_1,...,x_n)=C_t(F_t(x_1),...,F_t(x_n))$$
Remark: You can also combine different types of marginals and copula, e.g. Gauss Copula with t-Marginals.
The MATLAB-function to generate Copula values can be found here:
Y = copulacdf('Gaussian',U,rho)
Y = copulacdf('t',U,rho,NU)
## Answer by Richi Wa (score 1)
https://quant.stackexchange.com/a/14778
Just keep in mind that Gaussian marginals with Gaussian copula is nothing more than the multivariate Gaussian distribution (details e.g. here). For t-marginals with t-copula (with the same degree of freedom) you get the multivariate t-distribution.
Both multivariate distributions are characterized by their covariance matrix. The t-distribution has the additional parameter degrees of freedom and will thus produce tail dependence.
All in all you don't need the copula concept in these cases. The only benefit would be to use different degrees of freedom for the marginals and the copula in the t-distribution case.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.