程式

PortfolioAnalytics R 包 - 函式“create.EfficientFrontier”出錯

  • June 23, 2021

問題

create.EfficientFrontier包中的函式PortfolioAnalytics正在輸出一條錯誤消息,內容如下:

Error in `colnames<-`(`*tmp*`, value = c("mean", "StdDev", "out", "w.Asset1",  : 
 attempt to set 'colnames' on an object with less than two dimensions

到目前為止執行的故障排除沒有成功

  1. 搜尋相同的案例 - 發現一些具有相同錯誤消息但從不同函式輸出的案例
  2. 檢查共變異數矩陣是否不是正定的
  3. 最近更新了動物園包,所以我重新安裝了舊版本
  4. 除了我自己的程式碼之外,我還嘗試執行在兩個不同部落格中找到的範常式式碼,但是,一旦我嘗試執行函式“create.EfficientFrontier”,就會遇到完全相同的錯誤。

您可以查看以下連結以獲取程式碼和特定數據集,以嘗試重現我的錯誤:

來自 Ross Bennett(PortfolioAnalytics 開發人員)的 Efficient Frontier 展示

三個不同的數據集和相同的錯誤,所以我想我的 RStudio 可能有一些基本的配置錯誤問題。

關於罪魁禍首可能是什麼的任何想法?

提前致謝!

我遇到了同樣的問題。我不知道是什麼原因造成的,但我注意到如果您使用最新的 ROI 基礎架構(2016 年 6 月發布)會出現此錯誤,而如果您使用舊的 (2013) ROI 基礎架構(和舊外掛),該功能可以正常工作ins)在 CRAN 上仍然可用(見檔案)。

檢查您的數據是否存在重複值。如果您的數據中有任何重複項,則該函式似乎存在問題。查找重複項的最佳方法是先按字母順序排序!

引用自:https://quant.stackexchange.com/questions/31675