2011-01-28 13 views
3

資産管理に問題があります。私はこのフォーラムがそれを考慮するのに十分な興味深い質問を提起すると思う(そして希望する)。私たちは文献のかなりの広範な検索を行い、この質問の周りで話すことを見つけましたが、問題を直接扱うものは何も見つかりませんでした。分散を「直感的に」最小化

背景

は、我々は、相関行列を計算し、そこから資産の時系列データを、持っています。 Mathematicaを使用している5つの資産については、次のようになります。

m = Correlation[data] 

{{1.0, 0.635562, 0.698852, 0.404792, -0.32746}, {0.635562, 1.0, 0.410075, 0.314375, -0.0636438}, {0.698852, 0.410075, 1.0, 0.374416, -0.260137}, {0.404792, 0.314375, 0.374416, 1.0, 0.293135}, {-0.32746, -0.0636438, -0.260137, 0.293135, 1.0}} 

m //TableForm 

1.000000, 0.635562, 0.698852, 0.404792, -0.32746 

0.635562, 1.000000, 0.410075, 0.314375, -0.0636438 

0.698852, 0.410075, 1.000000, 0.374416, -0.260137 

0.404792, 0.314375, 0.374416, 1.000000, 0.293135 

-0.32746, -0.0636438, -0.260137, 0.293135, 1.000000 

資産管理では、多様化が望まれます。ポートフォリオ内の2つ以上の資産の相関が高すぎる場合は、リスクを分散するのではなく、集中します。私たちは、私たちは常にすべての楽器

Iでのいくつかの位置を保持しながら、ポートフォリオの「集中」のリスクを最小限に抑え、資産のポートフォリオを構築するためのアプローチや方法をしたい

を欲しい

下の2つの例で集中リスクを説明しますが、最初に...

なぜこれは興味深いですか問題か質問ですか? 「効率的フロンティア」に関連して、我々は、使用する個々の楽器のための将来の業績に関する仮定を持っていませんが

物事のカップルは、この興味深く、やりがいの質問をします。

分散を最小にすると答えは得られますが、直感的に満足している、または有用なものではありません。

主成分分析はこれを見るための自然な方法だと思われますが、私たちに必要なものを与えるようにも見えません。

私たちはエントロピーの最大化を見てきましたが、離散エントロピーに精通した私たちの人はそれが有望であると思っていましたが、これを連続エントロピーの観点から考えると、次のコードは、我々は(それが実際に実行される特定のではない)を見て何のアイデアを与える:

(* This function computes the distribution of returns, given a \ 
distribution of price movements.*) 

returnDistribution[P_, n_] := Module[ {xv, wv}, 
    wv = Array[w, n]; 
    xv = Array[x, n]; 
    varsInPlane = 
    Append[Delete[xv, n], (r - Total[Delete[wv*xv, n]])/wv[[n]]]; 
    Integrate[PDF[P, varsInPlane], 
    Map[Function[{#, -Infinity, Infinity}], Delete[xv, n]] 
    ] 
    ] 

dist = MultinormalDistribution[ 
    ConstantArray[0, 3], {{1, 0.9, 0}, {0.9, 1, 0}, {0, 0, 1}}]; 
rd = returnDistribution[dist, 3] 

(* The problem we want to solve is this *) 
wv = Array[w, n]; 
Maximize[{rd*Log[rd, 2], 
    Total[wv] == 1 && And @@ Thread[wv >= 0]}, wv] 

アッティリオ・メウッチが

http://www.symmys.com/AttilioMeucci/Research/PublFinance/PublFinance.html

、「多様化の管理」紙と有望に見えたいくつかのMATLABコードを持っています

しかし、私の同僚の1を見た後ようにコメントしました:彼は(befo大体私がやってみたかったのと同じ ことをやっているように見える

再 アイデアを破棄して)、彼は ビットを浮かべています。実際に 連続エントロピーを計算する代わりに、 は、各プリンシパル コンポーネントを個別のベットとして扱っているだけです。しかし、 は、基本的に彼の論文は 複数の相関したコインフリップで行った計算の洗練された バージョンです。この は、他の 変数からエントロピーを取得するように強制します。現在の変数の数字は です。私は1つは本当に フォーム「は95%、標準正規 分布、5%何かの状況に 生成モデルを使用することができることを想像 かかわら

は、彼がトリッキーかもしれない非正規 分布にやっていることを行うために、 が不良です。集中リスクの

集中リスク

を説明するための簡単な例をいくつ我​​々は思考で3つの資産のポートフォリオを見ればそれは私たちが達成したいかを理解するのが最も簡単です実験。

1, 1, 0 

1, 1, 0 

0, 0, 1 

この場合、私たちの視点から、それは25%を置くために理にかなって:楽器の2が1(100%)の相関と0に三分の一を持っている、それは相関行列は次のようになりますと仮定2つの相関したストックのそれぞれは、相関しないものの50%である。

25%, 25%, 50% 

その相関関係、将来的に変更される可能性があり、まださまざまな楽器の100%相関資産が実際にあることを認識しながら、これは、相関器に集中するリスクを相殺します。

50%, 0%, 50% 

0%, 50%, 50% 

10%, 40%, 50% 

...またはそのような:

一つは100%の相関関係を持つ2つの資産が同じに移動すると、その可能性の割り当ての広い範囲を均等例えば私たちの目的を果たすことができるとケースを作るかもしれませんテーマのバリエーション。

しかし、我々は彼らの将来の相関が進化していく方法がわからないように、我々は最高の、最も直感的なソリューションをのままだと思う:

と5つの資産のポートフォリオで
25%, 25%, 50% 

別の例

相関行列が100%の相関を有し、1が0%の相関を有する場合、相関行列は以下のようになる。

1, 1, 1, 1, 0 

1, 1, 1, 1, 0 

1, 1, 1, 1, 0 

1, 1, 1, 1, 0 

0, 0, 0, 0, 1 

そして、次の割合を持っている:もちろん

12.5%、12.5%、12.5%、12.5%、50%

は、現実の世界では大きな合併症を私たちに提示します。我々は(有望しかし、動作しません)分散を最小化

を試してみた

物事

は、誰かがこれを行うには分散を最小化することを示唆したが、一つは、それは生成されません見ることができるように直感的なソリューション:

いくつかのMathematicaのコードはこれを説明するには、次のとおりです。

For 3 assets: 

m3 = {{1, 1, 0}, {1, 1, 0 }, { 0, 0 , 1}}; 

Array[x, [email protected]]; 

Minimize[{p.m3.p, [email protected] == 1 && And @@ Thread[p >= 0]}, p] 

{1/2, {x[1] -> 1/4, x[2] -> 1/4, x[3] -> 1/2}} 

これはうまく見えます。それは、私たちに与えます:5つの資産について

25%、25%、50%

けど...

:それは私たちを与えるよう

m5 = {{1, 1, 1, 1, 0}, {1 , 1, 1, 1, 0 }, {1 , 1, 1, 1, 0 }, {1 , 1,1, 1, 0 }, { 0, 0 , 0, 0, 1}}; 

p = Array[x, [email protected]]; 

Minimize[{p.m5.p, [email protected] == 1 && And @@ Thread[p >= 0]}, p] 

{1/2, {x[1] -> 1/16, x[2] -> 1/4, x[3] -> 1/8, x[4] -> 1/16, x[5] ->1/2}} 

あまりよくありません:

6.25%, 25%, 12.50%, 6.25%, 50% 

したがって、この単純な(人工的な場合)ケースでも、分散を最小限に抑えても、より現実的なものになることはありません。

有望な解決策は、私たちの議論に

一つの要因は、有望なアプローチを提案 - 少なくともいずれかの負の相関を持っていない場合のために。おそらく、誰かがより完全な解決策を提案するかもしれません。ここでもMathematicaコードと

m = {{1, 1, 0}, {1, 1, 0}, {0, 0, 1}}; 

Tr /@ PseudoInverse[m]/Tr[ Tr /@ PseudoInverse[m]] 

{1/4, 1/4, 1/2} 

まさに我々が望むものを。注意:Mathematicaコードに慣れていない人には、関数 "Tr"は行列のトレースを見つけ、 "/ @"は関数をリストまたは行列に写像します。残りはおそらく意味をなさないでしょう。

再び
m = {{1, 1, 1, 0}, {1, 1, 1, 0}, {1, 1, 1, 0}, {0, 0, 0, 1}}; 

Tr /@ PseudoInverse[m]/Tr[ Tr /@ PseudoInverse[m]] 

{1/6, 1/6, 1/6, 1/2} 

、私たちが望むまさに:4つの資産の

別の例。

これは分散を最小化するよりも良い作品が、より現実の世界の例(ポストに記載された第1の1)私たちは何かを得るにはそれが動作しません:

m = {{1.0, 0.635562, 0.698852, 0.404792, -0.32746}, {0.635562, 1.0, 0.410075, 0.314375, -0.0636438}, {0.698852, 0.410075, 1.0, 0.374416, -0.260137}, {0.404792, 0.314375, 0.374416, 1.0, 0.293135}, {-0.32746, -0.0636438, -0.260137, 0.293135, 1.0}} 

Tr /@ PseudoInverse[m]/Tr[ Tr /@ PseudoInverse[m]] 

{0.267806, 0.0898877, 0.22403, -0.0541658, 0.472441} 

をこのケースでは、負を持っています第4資産の配分(-0.0541658)、達成したいものに意味をなさないもの。

結論

だから、我々はMinimizeVarianceIntuitively機能のようなものを必要としています。私たちが十分に明確に達成したいことがこのすべてで説明されることを願っています。全く別の方法でこの問題を攻撃するための提案やアイデア、または私たちが試したことのいずれかを拡張するための提案やアイデアは、すでに高く評価されています。

これを偶然に見る人は、常にCAPM(Capital Asset Pricing Model)がこれを行うことを示唆しています。それはしません。上記の相関関係は、資産を資産に関連させているわけではなく、各資産を「市場」に関連付けるものではないため、動作する「ベータ」はありません。また、記載された問題は、リスクフリーレートの返品または使用、または価格の正規分布のいずれも仮定していない。私はCAPMがこれを行う方法のように見えるかもしれないが、それがどのように適用されるかはわかりません。

多くのおかげで、

アルンGarapata

答えて

2

を試してみてください。各資産について、その共分散を合計する。次に、そのパーセンテージを、その合計と共分散の総和との比に反比例します。

コードでは、元の例を使用して、次のようにします。

cormat = {{1.0, 0.635562, 0.698852, 
0.404792, -0.32746}, {0.635562, 1.0, 0.410075, 
0.314375, -0.0636438}, {0.698852, 0.410075, 1.0, 
0.374416, -0.260137}, {0.404792, 0.314375, 0.374416, 1.0, 
0.293135}, {-0.32746, -0.0636438, -0.260137, 0.293135, 1.0}}; 

n = Length[cormat]; 
xvars = Array[x, n]; 
corrs = Map[Total, cormat]; 
cortot = Total[Total[cormat]]; 

unnormalized = 
    xvars /. First[Solve[xvars == cortot/corrs, xvars]] 

OUT [26] = {4.129760099114916、4.337254104111004、4.479986290069387、\ 4.173066277624756、15.51647047130198}

normalized = unnormalized/Total[unnormalized] 

OUT [27] = {0.1265379371734397、0.1328956583819156、0.1372690447157368、0.1278648603757522、0.4754324993531559 \}

これらの値は、この例では妥当な結果であると考えられます。

2つの欠陥があります。一つは、これが資産の相対的な強さを説明していないということです。私は、すなわち資産1の1ドルは資産2の1ドルは価値がある価値がある、私はあなたがすでにそのための重み付けを疑うので、それが問題だと思う...

--edit--

この最後はありませんかなり正しいことはできません。あなたは、資産の価格とその推定収益を考慮する必要があります。私が示したコードでこれをどのように処理したいのか分かりません。多分、より良い共分散を得るためには、「より良い」資産(リターンと価格の面で)が軽くなるように、少しの共分散が必要でしょうか? --end edit--

大きな問題

は大きな負の相関がある場合、これは素晴らしいプレーではないということです。どのように対処するかは、あなたが必要とする動作が何であるかによって異なります。たとえば、アセットのペアが負の相関関係にある場合、相関がゼロになることが望ましいと思いますか?そうでない場合、簡単な修正は、ネガティブを正の相関の何分の一にするか(または負の相関が無相関なアセットより良くないか悪いと考えられる場合にはゼロにする)ことです。

負の相関関係を持つペアを使用すると、相対的にポジションを持たせるのが相対的に望ましい場合(より耐震性を高める)、上記のコードを調整する必要があります。相関合計が-1に達するか、またはそれを超える。合理的なヒューリスティックは、その合計が範囲(-0.5,0)にある場合には、1つの行だけにネガを残し、そうでなければ合計を-0.5に正規化することです。明らかに、これは発見的であり、パラメータは、例えば、調整可能である。逆の代わりに逆電力関係を使用することができます。私が提案している以外の方法でネガを扱うことができます。

注記私は専門用語の誤用は意図的ではないので、私はここから外しています。多分私の深みの中から。

ダニエルLichtblau Wolfram Researchの

+0

ダニエル - ありがとう。それは、我々がこれにアプローチする必要がある方法に役立つ追加情報を提供します。明快にするための2つのポイント。私たちは "推定されたリターン"については仮定しませんが、ボラティリティを測定して実行することができます(最初は、意味を取るならば、後の範囲のベクトルを与えます)。資産間の正の相関関係は、資産が上昇した場合にはうまくいくが、下落しない場合にはうまくいくが、再び方向性を予測することはできない。 「大きな負の相関」は実際にはあまり見られませんが、いつか起こることが予想されます。 – Jagra

2

あなたはソリューションの無限の数があるあなたの極端なテストの例では、 Mmaはそれらの1つを選び出します。 (未確認の)ウェイトをおおよそ等しくするソリューションを選択したい場合は、その面を気にしてください。たとえば、平等から逸脱した場合のペナルティを追加できます。試してみてください:

lambda = .00001; 
NMinimize[{p.m5.p - 
    lambda*PDF[DirichletDistribution[Table[2, {5}]], Most[p]], 
    [email protected] == 1 && And @@ Thread[p >= 0]}, p] 

私はディリクレ分布を平均1/5で使っています。同調パラメータには、ディリクレ分布(平均値の周囲の濃度を制御する)におけるラムダおよびパラメータ「2」の両方が含まれる。実際の問題に応じて、これらの調整パラメータで周りを回る必要があります。あなたのあまり極端な例では、私はシンプルで、わずかに欠陥のあるアプローチを提案します

lambda = .0001; 
NMinimize[{p.m.p - 
    lambda*PDF[DirichletDistribution[Table[2, {5}]], Most[p]], 
    [email protected] == 1 && And @@ Thread[p >= 0]}, p] 

--mark

+0

マーク - 非常に興味深いアプローチ。一見すると、それは多くの約束を持っています。迅速で思いやりのある返信に感謝します。 – Jagra

関連する問題