我解决简单的优化问题。该数据集有26列和3000多行。 源代码看起来像[R解决:系统正是奇异
Means <- colMeans(Returns)
Sigma <- cov(Returns)
invSigma1 <- solve(Sigma)
,一切工作perfect-但后来我想这样做同样的时间较短(只有261行)和解决功能写入以下错误:
solve(Sigma)
Error in solve.default(Sigma) :
Lapack routine dgesv: system is exactly singular
它的奇怪,因为当我做同样的一些随机数字:
Returns<-matrix(runif(6786,-1,1), nrow=261)
Means <- colMeans(Returns)
Sigma <- cov(Returns)
invSigma <- solve(Sigma)
根本不会发生错误。有人可以解释我在哪里可以解决问题以及如何对待它。 非常感谢, 亚历克斯
该数据集包含26资产收益的日收益率,应该是可逆的,不是吗?我很困惑,为什么当我有了整个数据集,而缩短产生错误时没有问题。任何想法如何处理它? – Alex
@Alex检查'det(Sigma)':如果它为零则不可能反转。 – James
事实上,它是0.当我缩短数据集时,有什么问题? – Alex