Is it possible to use t-copula in Matlab for around 450,000 variables?

1 visualizzazione (ultimi 30 giorni)
Is it possible to use t-copula in Matlab for around 450,000 variables? or there is any limitation?

Risposte (1)

Tom Lane
Tom Lane il 11 Giu 2013
I see no limitation imposed by the copularnd function when I look at the code. However, the correlation matrix is going to be 450000-by-450000 for this. When I try to create that matrix, I run out of memory. If you do manage to create it, I wouldn't be surprised to find that copularnd needs to create other temporary variables of a comparable size as it tries to do its thing.
  1 Commento
saber
saber il 11 Giu 2013
Thanks Tom,
Yes, I agree. I have 450000 variables each of them consists of 288 samples. At first I tried to fit t-copula to a number of 1000 variables just to test. I used this function :
[RHO,nu] = copulafit('t',C,'Method','ApproximateML');
but the following error was appeared :
Error using ==> copulafit>profileNLL_t at 268 The estimate of Rho has become rank-deficient. You may have too few data, or strong dependencies among variables.
Error in ==> copulafit>bracket1D at 544 oldnll = nllFun(bound);
Error in ==> copulafit at 162 [lowerBnd,upperBnd] = bracket1D(profileFun,lowerBnd,5); % 'upper', search ascending from 5
Error in ==> tcopula2 at 45
[RHO,nu] = copulafit('t',C,'Method','ApproximateML');
However, when I run for 100 variables, it is done without error!

Accedi per commentare.

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by