R
從 C++ 切換到 R - 限制/應用
我最近才開始探索和學習R(特別是自從Dirk推薦了RStudio並且這裡的很多人都高度評價R之後)。我相當面向C(++),所以它讓我思考 - R 的局限性是什麼,特別是在性能方面?
我正在嘗試權衡C++/Python/R替代方案的研究,我正在考慮是否足夠好地了解R是否值得投入時間。
可用的軟體包看起來很有希望,但我心中有一些問題暫時讓我無法接受:
- R在導入大數據集方面的效率如何?**首先,在R開發方面有什麼大不了的?我曾經用 C++ 處理幾百個 CSV 文件(我想大約 0.5M 值),我記得它只是可以接受的。我可以從R那裡得到什麼?從Jeff 的驚人結果來看,我假設使用適當的長期解決方案(不是 CSV),我什至應該能夠毫無障礙地切換到刻度處理。但是臨時數據處理呢?性能上的差異(與更底層的實現相比)是否可見?或者它只是一個都市傳說?
- **GUI 開發有哪些選擇?**假設我想比面向研究的分析更進一步,比如為投資分析/交易等開發完整的 UI。根據我在這里和StackOverflow上提到的內容,通過適當的綁定,我可以在這裡甚至是自由使用Python的框架如果出現這種需要,則進一步連結到*Qt 。*但是部署這樣的野獸一定很麻煩。你如何應對?
總的來說,我看到R的靈活性允許我將它與大量其他語言混合和匹配(無論哪種方式 - 在**R中使用低級添加或在用另一種語言編寫的項目中嵌入/呼叫R)。這看起來不錯,但它有意義嗎(我的意思是從開始/概念階段考慮它,而不是擴展預先存在的解決方案)?還是堅持使用一種唯一的語言(插入您喜歡/有經驗的任何內容)更好?
總結一下:在哪些量化金融應用中,R是一個(真的)不好的選擇(或者至少可以是)?
R 可能非常慢,而且非常消耗記憶體。我的數據集只有 8 GB 左右,而我有一台記憶體為 96 GB 的機器,而且我一直在努力解決 R 的記憶體管理問題。許多模型估計函式擷取到其環境的連結,這意味著您可以保留指向您正在處理的每個數據子集的指針。SAS 在處理大型數據集方面要好得多,但 R 處理起來要好得多。(這是在抵押貸款提前還款和違約建模的背景下。)
根據我的經驗,導入數據集非常簡單和快速。實際處理該數據的不斷膨脹的記憶體需求才是問題所在。
任何不容易矢量化的東西似乎都是一個問題。對依賴於目前投資組合狀態的策略進行損益回測似乎很難。如果您正在查看對沖具有完整風險指標的固定收益投資組合的剩餘損益,那將很難。
我懷疑很多人會想用 R 或蒙特卡羅引擎編寫期限結構模型。
儘管如此,R 仍然是您工具箱中非常有用的工具。但它並不完全是一個計算強國。
我對 GUI 選項一無所知。