1つの市場、いくつかのテーマ、そして長い裾
リターンの各列を標準化(平均0、標準偏差1)した結果を、n 日・p 資産の Z とします。相関行列は C=ZᵀZ/n です。主成分は C の固有ベクトル vⱼ で、標準化したリターンが最も大きくばらつく資産空間の方向、次に第1の方向に直交する方向のうち最も大きくばらつく方向、というように続きます。固有値 λⱼ はその方向の分散で、固有値の和は p(標準化した p 列の総分散)に等しく、λⱼ/p が寄与率です。スコア Z vⱼ はその成分の時系列です。numpy.linalg.eigh は固有値を昇順で返すので降順に並べ替えます。固有ベクトルの符号は任意なので、何かと比べる前に規約(たとえば絶対値最大の成分を正にする)を決めます。
最初の k 個の成分だけを残すと、データは Ẑ=Z VₖVₖᵀ として再構成されます。再構成の平均二乗誤差は捨てた分散を p で割ったもの 1/pΣ_(j>k)λⱼ です。61の株式とETFの直近2,500取引日では、第1成分が分散の 37.4%、続く4つが 7.3%、6.2%、3.3%、2.8% を担います。第1スコアは等ウェイト平均リターンと相関 0.998 を持ち、教えなくても見つかった市場そのものです。次の成分はセクターやスタイルのテーマです。それでも裾は重く、分散の半分には 3 成分で足りますが、80% には 22、90% には 34 成分が必要で、再構成誤差は1成分で 0.626、5成分で 0.430、20成分で 0.213 です。PCAは市場の共通部分を圧縮しますが、61資産を3つのように見せるわけではありません。
- 標準化してから固有分解する。固有値の和は資産数に等しい。
- 符号は任意。規約を決め、ベクトルは絶対値のコサインで比べる。
- 株式リターンの第1成分は市場。小さな成分の裾もなお重要。
ラボ:採点される内容
- 標準化10点
- 固有分解20点
- 寄与率10点
- scikit-learnとの照合15点
- 必要な成分数10点
- 再構成誤差15点
- 研究20点