2016-04-12 6 views
1

私はランダムポートフォリオを生成しようとしていますが、以下のエラーが発生しています。エラー:Rで591.3 MBを割り当てることができません:ffパッケージを使用して解決するには?

port <- portfolio.spec(assets = c("^NSEI","ITC.NS", "SBIN.NS", "COALINDIA.NS", "ICICIBANK.NS", "TATAMOTORS.NS", "ADANIPORTS.NS", "UPL.NS", "LICHSGFIN.NS", "NTPC.NS", "ONGC.NS", "TCS.NS", "INFY.NS", "INFRATEL.NS", "DABUR.NS", "BHARTIARTL.NS", "GAIL.NS", "VEDL.NS", "MOTHERSUMI.NS", "WELSPUNIND.NS", "WIPRO.NS", "TATAPOWER.NS", "IDEA.NS", "CAIRN.NS", "UNITECH.NS")) 

ボックス

port <- add.constraint(port, type = "box", min = 0.05, max = 0.8) 

活用

port <- add.constraint(portfolio = port, type = "full_investment") 

ターゲットに戻る

port <- add.constraint(portfolio = port, type="return", return_target=0.015) 
資産の名前でスタート

は、私のポートフォリオで24の有価証券は選択肢の一つです
rportfolios <- random_portfolios(port, permutations = 3100000, rp_method = "sample") 

ランダムポートフォリオ

を生成し、私は過去1年間のために調整終値を使用しています。私は数を増やすと、私は

同様
Permuations = 4100000 

Error: cannot allocate vector of size 782.0 Mb

を置くように私は

を減少させる場合、それはベクトルMBが増加し、いくつかの試行錯誤の方法を行われ、順列数といくつかの問題がある知っているようになりました
Permutations = 2100000 

Error in rp_transform(w = tportfolio, min_sum = min_sum, max_sum = max_sum, :Infeasible portfolio created, perhaps increase max_permutations and/or adjust your parameters.

+0

多くの研究の後、私はRでffパッケージを見つけます。ffパッケージを使用して上記の問題を解決する方法をいくつか教えてください。 –

答えて

1

誰もがこの問題への答えを探してここに来た場合。

まずメインエラー

Error in rp_transform(w = tportfolio, min_sum = min_sum, max_sum = max_sum, :Infeasible portfolio created, perhaps increase max_permutations and/or adjust your parameters.

が可能ポートフォリオ重みの不十分な数の生成によるものです。

source code

、実現可能なものに実行不可能なポートフォリオの重みのベクトルを変換しようとすると失敗した場合に、このエラーがスローされます機能rp_tranform。ソースコード

# checks for infeasible portfolio
# Stop execution and return an error if an infeasible portfolio is created
# This will be useful in fn_map so that we can catch the error and take
# action (try again with more permutations, relax constraints, different
# method to normalize, etc.)

soから、あなたは

port <- add.constraint(port, type = "box", min = 0.01, max = 0.95) 

にあなたの箱の制約を緩和または他のいくつかの制約を変更してみてください。

関連する問題