我解決簡單的優化問題。該數據集有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