我正在解决简单的优化问题.该数据集有26列,超过3000行.源代码看起来像
Means <- colMeans(Returns)
Sigma <- cov(Returns)
invSigma1 <- solve(Sigma)
Run Code Online (Sandbox Code Playgroud)
一切都很完美 - 但是我想在更短的时间内(只有261行)做同样的事情,而solve函数会写出以下错误:
solve(Sigma)
Error in solve.default(Sigma) :
Lapack routine dgesv: system is exactly singular
Run Code Online (Sandbox Code Playgroud)
它很奇怪,因为当我用一些随机数做同样的事情时:
Returns<-matrix(runif(6786,-1,1), nrow=261)
Means <- colMeans(Returns)
Sigma <- cov(Returns)
invSigma <- solve(Sigma)
Run Code Online (Sandbox Code Playgroud)
完全没有错误.有人可以解释我哪里可能是问题以及如何对待它.非常感谢,Alex
这是我的简化数据集:
foo <- data.frame(var1= c(1:10), var2=rep(1:5,2),var3=rep(1:2,5),var4=rep(3:7,2) )
Run Code Online (Sandbox Code Playgroud)
共有20个变量
foo
var1 var2 var3 var4 ... var20
1 1 1 1 3
2 2 2 2 4
3 3 3 1 5
4 4 4 2 6
5 5 5 1 7
6 6 1 2 3
7 7 2 1 4
8 8 3 2 5
9 9 4 1 6
10 10 5 2 7
Run Code Online (Sandbox Code Playgroud)
我需要获得3个变量的独特组合及其每个时期的总和
即.......好吧
var1var2var3 var1var3var4 var1var5var18 etc...
1 6 sum
2 6
3 7
4 10 …
Run Code Online (Sandbox Code Playgroud)