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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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.*

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.

saber
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!

## 0 Comments