R solve:system is exactly singular

Viewed 128948

I am solving simple optimization problem. The data set has 26 columns and over 3000 rows. The source code looks like

Means   <- colMeans(Returns)
Sigma   <- cov(Returns)
invSigma1 <- solve(Sigma)

And everything works perfect- but then I want to do the same for shorter period (only 261 rows) and the solve function writes the following error:

solve(Sigma)
Error in solve.default(Sigma) : 
  Lapack routine dgesv: system is exactly singular 

Its weird because when I do the same with some random numbers:

Returns<-matrix(runif(6786,-1,1), nrow=261)
Means   <- colMeans(Returns)
Sigma   <- cov(Returns)
invSigma <- solve(Sigma)

no error occurs at all. Could someone explain me where could be the problem and how to treat it. Thank you very much, Alex

4 Answers

I can understand your question. The problem is that your matrix is perpendicular. You can see your first number and the last number of your matrix is same.

Related