MATLAB Answers


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

Asked by saber
on 10 Jun 2013

Is it possible to use t-copula in Matlab for around 450,000 variables? or there is any limitation?




No products are associated with this question.

1 Answer

Answer by Tom Lane
on 11 Jun 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 Comment

on 11 Jun 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!

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!