Recently, I read this web page which explains the Copula package in R.

A question occurred to me. Consider a data set $D_{n\times d}$ which $n$ is the number of samples and $d$ is the number of RVs.

we want to find the joint distribution of these $d$ RVs by Gaussian copula.

for estimating the $\Sigma$ in Gaussian Copula, in the first step, it requires that we transform the dataset into hypercube $[0,1]^d$ with uniform distribution for each RV.

on the other hand, for obtaining the uniformly distributed data, we need to know the CDF of each RV. And also by using the integral transform theorem we know that for every RV we have: $F_X(X) \sim U(0,1)$

i.e. $F_1(x_1),\dots, F_d(x_d)$ must be known. However, they are not given to us with the data set and they are unknown for us.

In the Copula package, it uses pobs() to transform the data in the unit hypercube and then it estimates $\Sigma$ by maximum likelihood.

Now my question,

How pobs does guarantee that correlation between the transformed data used by pobs would be as similar as the correlation matrix of the transformed data used by known CDFs?(Consider for comparison between these two cases, we know the CDFs)

Or in other words,

Is it ok that we estimate $\Sigma$ without any knowledge about the prior CDFs (only using the pobs)? or at first, we should consider some prior CDFs for the dataset and then transform them into hypercube by $F_X(X) \sim U(0,1)$ and finally estimate $\Sigma$.

I would appreciate any clear explanation for these two cases.


1 Answer 1


Your question is very known in copula literature. Yes, the marginal distributions are almost unknown in practice. This is a big problem not just in copula. In copula models, we need to transform the variables to the hypercube $[0,1]^{d}$, where $d$ is the number of the variables. There are several ways to estimates the margins for copula models. The most used method is The Estimation Method of Inference Functions for Margins for Multivariate Models. This method is known as (IFM) See this paper. In this method we estimate the margins and then transform them to the copula data. This is not very efficient if the margins are unknown. Another method is the Pseudo-maximum likelihood method (PML) where we estimate the margins non-paramatically using empirical cumulative function (ecdf) (in copula package, we use pobs function for this case). This method works better than IFM if the margins are unknown and slightly less efficient if they are known. So, if your interest is in modelling the dependency structure between variables (only) then you can use pobs. Hope this is helpful. Please have a look at the copula package in R, it is very helpful to understand you problem.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.