web-dev-qa-db-ja.com

Pandas)を使用して共分散行列を計算する方法

パンダで共分散行列を計算する方法を見つけようとしています。私はデータサイエンティストでも財務担当者でもありません。彼のリーグから抜け出す通常の開発者です。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(252, 4)), columns=list('ABCD'))
print(df.cov())

したがって、これを行うと、そのような出力が得られます。

enter image description here

その数は膨大で、ゼロに近いと思っていました。 covを取得する前にリターンを計算する必要がありますか?

これに精通している人は、これを少し説明したり、説明との良いリンクを教えてくれますか?ダミーの共分散行列へのリンクが見つかりませんでした。

よろしく、ジュリアン

5
JulienCoo

共分散は、2つの資産(または任意の2つのベクトルまたは配列)の収益が連動して移動する度合いの尺度です。正の共分散は資産収益が一緒に移動することを意味し、負の共分散は収益が逆に移動することを意味します。

反対側には:

相関係数は、2つの変数の動きが関連付けられている度合いを決定する尺度です。相関係数は、2つの配列/ベクトル/資産間の線形関係 2を測定することに注意してください。

そのため、ポートフォリオマネージャーは、2つの資産間の共分散を減らし、相関係数を負に保ち、ポートフォリオに十分な分散を持たせようとします。つまり、1つの資産の収益が減少しても、2番目の資産の収益は減少しません(そのため、負の相関が必要です)。

共分散ではなく、ゼロに近い相関係数を意味しているのかもしれません。

3
Okroshiashvili

ランダムに生成された数値のシードを提供していないという事実は、実験の再現性を困難にします。しかし、私はあなたがここで提供しているコードを試しました、そして私が得るより近い共分散行列はこれです:

covariance matrix

Cov_matrixの数値が非常に大きい理由を理解するには、最初に共分散行列とは何かを理解する必要があります。共分散行列は、i、jの位置に、ランダムベクトルのi番目とj番目の要素間の共分散を持つ行列です。

あなたがチェックするかもしれない良いリンクは https://en.wikipedia.org/wiki/Covariance_matrix です。また、相関行列を理解すると役立つ場合があります: https://en.wikipedia.org/wiki/Correlation_and_dependence#Correlation_matrices

0
AlketCecaj