created at

Posted by Coin News Main

グラフィカルラッソをペアトレードに応用する 【応用編】

【導入編】の続きです。

前回はカルバックライブラー情報量(KL距離)とグラフィカルラッソの2つの武器を使って、個々の銘柄の値動きの異常度を検知するというアイデアを紹介しました。今回はグラフィカル・ガウジアン・モデルというモデルを用いて、実際に二つの確率分布間のKL距離を導出していきます。

ここで解析的にKL距離を算出することによってPythonなどコードにモデルを組みこめるようになります。【実践編】は次回書きます。

グラフィカル・ガウジアン・モデル

そもそもグラフィカルラッソのグラフとはなんでしょうか。ここで言うグラフとは、多変量データセット内の変数間の条件付き依存関係を表現するためのツールです。

グラフの定義

グラフGGは、二つの集合VVEEの組で定義されます。ここで、

  1. 頂点(ノード)の集合VV: グラフの基本要素で、点として表現されます。各頂点はグラフの特定の要素やオブジェクトを代表します。

  2. 辺(エッジ)の集合EE: 二つの頂点を結ぶ線として表現され、頂点間の関係や接続を示します。辺は有向(矢印で示される、方向性がある)か無向(単なる線、方向性がない)のいずれかです。

特に変数間の依存関係を多変量正規分布を用いて推定する場合、 このグラフモデルはグラフィカル・ガウジアン・モデル(GGM)と呼ばれます。

GGMにおけるグラフの作成と意味

  1. 精度行列の使用: GGMでは、変数間の関係を精度行列(共分散行列の逆行列)を用いて表現します。この行列の各要素が、対応する二つの変数間の関係の強さを示します。

  2. 関係の解釈: 精度行列の要素がゼロでない場合、それは二つの変数間に直接的な関係があることを意味し、グラフ上にエッジで結ばれます。要素がゼロの場合、関係がないと解釈され、エッジは描かれません。

  3. データ構造の可視化: このグラフを使って、データセット内の変数間の複雑な関係を視覚化することができます。例えば、ある変数が多くの他の変数と関連している場合、その変数は多くのエッジを持つことになり、データ内で重要な役割を担っている可能性が高いと解釈できます。

GGMにおける多変量正規分布

多変量正規分布を表現する際、一般的にはN(μ,Σ)N(\mu, \Sigma)の形で表現されますが、GGMの枠組みでは精度行列Λ\Lambdaを用いてN(xμ,Λ1)N(\bm{x}|\bm{\mu}, \Lambda^{-1})のように表現されることがあります。

特に平均がゼロベクトルの場合、多変量正規分布の確率密度関数は次のようになります。

p(x)=1(2π)kΛ1exp(12xTΛx)p(\bm{x}) = \frac{1}{\sqrt{(2\pi)^k |\Lambda^{-1}|}} \exp\left(-\frac{1}{2} \bm{x}^T \Lambda \bm{x}\right)

精度行列を使用すると、変数間の直接的な依存関係がより明確に表されるため、グラフィカルモデルなどの文脈でしばしば用いられます。

GGMにおける変数間のKL距離を解析的に導出する

ここからが本題です。

zi\bm{z_i}をベクトルx\bm{x}上にある変数xix_i以外の他の変数のベクトルとします。zi\bm{z_i}の確率分布が与えられた時のxix_iの条件付き分布が我々の関心なので、pA(xizi)p_A(x_i|\bm{z_i})pB(xizi)p_B(x_i|\bm{z_i})の間の KL 距離を分布pA(zi)p_A(\bm{z_i})によって評価します。(ETH, SOL, BNB, ARB.....が与えられたときのBTCの値動きの確率分布の距離を二つの地点で測る)

diAB=dzipA(zi)dxipA(xizi)lnpA(xizi)pB(xizi)d^{AB}_i = \int d\bm{z_i} p_A(\bm{z_i}) \int dx_i p_A(x_i|\bm{z_i}) \ln \frac{p_A(x_i|\bm{z_i})}{p_B(x_i|\bm{z_i})}

まず準備として精度行列Λ\Lambdaおよびその逆行列である分散共分散行列Σ\Sigmaをそれぞれ次のように分割します。

Λ=(LAlAlAλA),ΣΛ1=(WAwAwAσA) \Lambda = \begin{pmatrix} L_A &\bm{ l_A^{\top}} \\ \bm{l_A} & \lambda_A \end{pmatrix}, \quad \Sigma \equiv \Lambda^{-1} = \begin{pmatrix} W_A & \bm{w_A^{\top}} \\ \bm{w_A} & \sigma_A \end{pmatrix}

p(xizi)p(x_i|\bm{z_i})の分布を求める

x\bm{x}MM次元ベクトルとすると、zi\bm{z_i}M1{M-1}次元になります。正規分布を正規分布で割ったものは正規分布になるので、xix_iに関する項のみexp内で展開すれば良いです。

p(xizi)=(12π)Mdet(Λ)12exp(12xΛx)(12π)M1det(L)12exp(12ziLzi)exp(12(zixi)(LAlAlAλA)(zixi)÷12ziLzi)exp{12(λxi2+2zilAxi)}exp{λ2(xizilAλ)2}\begin{aligned} p(x_i|\bm{z_i}) &= \frac{\left(\frac{1}{\sqrt{2 \pi}}\right)^{M} \cdot \operatorname{det}(\Lambda)^{\frac{1}{2}} \cdot \exp \left(-\frac{1}{2} x^{\top} \Lambda x\right)}{\left(\frac{1}{\sqrt{2 \pi}}\right)^{M-1} \cdot \operatorname{det}(L)^{\frac{1}{2}} \cdot \exp \left(-\frac{1}{2} \bm{z_i} L \bm{z_i}\right)} \\ & \propto \exp \left(-\frac{1}{2}\left(\begin{array}{ll}\bm{z_i} \\ x_i\end{array}\right)^{\top}\left(\begin{array}{ll}L_A & \bm{l_A}^{\top} \\ \bm{l_A} & \lambda_A \end{array}\right)\left(\begin{array}{ll}\bm{z_i} \\ x_i\end{array}\right) \div \frac{1}{2}\bm{z_i}^{\top}L\bm{z_i}\right) \\ & \propto \exp \left\{-\frac{1}{2}\left(\lambda x_i^2+2 \bm{z_i}^{\top} \bm{l_A} x_i\right)\right\} \\ & \propto \exp \left\{-\frac{\lambda}{2}\left(x_i-\frac{\bm{z_i}^{\top} \bm{l_A} }{\lambda}\right)^2\right\} \\ & \end{aligned}

となって、xix_iは平均zilAλ\frac{\bm{z_i}\bm{l_A}}{\lambda}、分散1λ\frac{1}{\lambda}の正規分布に従うことがわかります。

xiN(zilAλ,1λ)x_i \sim \mathcal{N}\left(\frac{\bm{z_i}\bm{l_A}}{\lambda},\frac{1}{\lambda}\right)

また、確率密度関数は、

p(xizi)=λ2πexp(λ2(xizilAλ)2) p(x_i|\bm{z_i}) = \frac{\sqrt{\lambda}}{2\pi} \exp \left( -\frac{\lambda}{2} \left( x_i - \frac{\bm{z_i}^{\top} \bm{l_A}}{\lambda} \right)^2 \right)

となります。これを用いてKL距離に現れる数式を解いていきます。

diABd^{AB}_iについて解いていこう

zi\bm{z_i}の定義からx=(zi,xi)\bm{x} = (\bm{z_i}, x_i)となることに注意して

diAB=dzipA(zi)dxipA(xizi)lnpA(xizi)pB(xizi)=lnpA(xizi)pB(xizi)pA(zi)dzipA(xi)dxi=lnpA(xizi)pB(xizi)dx=ln(λAλBexp(λA2(xizilAλA)2+λB2(xizilBλB)2))pA(x)dx.=12lnλAλB+{12λA(x(lAλA))2+12λB(x(lBλB))2}pA(x)dx=12lnλAλB+EA[12λA(lAλA)xx(lAλA)+12λB(lBλB)xx(lBλB)](1)\begin{aligned} d^{AB}_i &= \int d\bm{z_i} p_A(\bm{z_i}) \int dx_i p_A(x_i|\bm{z_i}) \ln \frac{p_A(x_i|\bm{z_i})}{p_B(x_i|\bm{z_i})} \\ &= \int \int \ln \frac{p_A(x_i|\bm{z_i})}{p_B(x_i|\bm{z_i})} p_A(\bm{z_i}) d\bm{z_i} p_A(x_i) dx_i \\ &= \int \ln \frac{p_A(x_i|\bm{z_i})}{p_B(x_i|\bm{z_i})} d\bm{x} \\ &= \int \ln \left( \sqrt{\frac{\lambda_A}{\lambda_B}} \exp \left( -\frac{\lambda_A}{2} \left(x_i - \frac{\bm{z_i}^{\top} \bm{l_A}}{\lambda_A} \right)^2 + \frac{\lambda_B}{2} \left(x_i - \frac{\bm{z_i}^{\top} \bm{l_B}}{\lambda_B} \right)^2 \right) \right) p_A(\bm{x}) d\bm{x}. \\ &=\int \frac{1}{2} \ln \frac{\lambda_A}{\lambda_B}+\left\{-\frac{1}{2 \lambda_A}\left(\bm{x}\left(\begin{array}{c}-\bm{l_A} \\ \lambda_A\end{array}\right)\right)^2+\frac{1}{2 \lambda_B}\left(\bm{x}\left(\begin{array}{c}-\bm{l_B} \\ \lambda_B\end{array}\right)\right)^2\right\} p_A(\bm{x}) d\bm{x} \\ &=\frac{1}{2} \ln \frac{\lambda_A}{\lambda_B}+E_A\left[-\frac{1}{2 \lambda_A}\left(\begin{array}{c}-\bm{l_A} \\ \lambda_A\end{array}\right)^{\top} \bm{x} \cdot \bm{x}^{\top}\left(\begin{array}{c}-\bm{l_A} \\ \lambda_A\end{array}\right)+\frac{1}{2 \lambda_B}\left(\begin{array}{c}-\bm{l_B} \\ \lambda_B\end{array}\right)^{\top} \bm{x} \cdot \bm{x}^{\top}\left(\begin{array}{c}-\bm{l_B} \\ \lambda_B\end{array}\right)\right] \quad (1) \end{aligned}

E[xx]=(WAwAwAσA)E[\bm{x} \cdot \bm{x}^{\top}] = \begin{pmatrix} W_A & \bm{w_A}^{\top} \\ \bm{w_A} & \sigma_A \end{pmatrix}であるから、(1)式は

(1)=12lnλAλB12λA(lAWAlA2wAlAλA+λA2σA)+12λB(lBWAlB2wAlB+λBσA)=wA(lAlB)+12(lBWAlBλBl1wAlAλA)+12{lnλAλB+σA(λBλA)}\begin{aligned} (1)& =\frac{1}{2} \ln \frac{\lambda_A}{\lambda_B}-\frac{1}{2 \lambda_A}\left(\bm{l_A}^{\top} W_A \bm{l_A}-2 \bm{w_A}^{\top} \bm{l_A} \lambda_A+\lambda_A^2 \cdot \sigma_A\right)+\frac{1}{2 \lambda_B} \left(\bm{l_B}^{\top} W_A \bm{l_B}-2 \bm{w_A}^{\top} \bm{l_B}+\lambda_B \sigma_A\right) \\ & ={\bm{w_A}}^{\top}\left(\bm{l_A}-\bm{l_B}\right)+\frac{1}{2}\left(\frac{\bm{l_B}^{\top} W_A \bm{l_B}}{\lambda_B}-\frac{l_1^{\top} \bm{w_A} \bm{l_A}}{\lambda_A}\right)+\frac{1}{2}\left\{\ln \frac{\lambda_A}{\lambda_B}+\sigma_A\left(\lambda_B-\lambda_A\right)\right\}\end{aligned}

最終的にKL距離diABd^{AB}_i は以下のように表すことができます。

diAB=wA(lAlB)+12(lBWAlBλBl1wAlAλA)+12{lnλAλB+σA(λBλA)}d^{AB}_i ={\bm{w_A}}^{\top}\left(\bm{l_A}-\bm{l_B}\right)+\frac{1}{2}\left(\frac{\bm{l_B}^{\top} W_A \bm{l_B}}{\lambda_B}-\frac{l_1^{\top} \bm{w_A} \bm{l_A}}{\lambda_A}\right)+\frac{1}{2}\left\{\ln \frac{\lambda_A}{\lambda_B}+\sigma_A\left(\lambda_B-\lambda_A\right)\right\}

AABB を入れ替えることで、diBAd^{BA}_iも同様に得ることができます。

導出にあたっては疎な相関グラフの学習による相関異常の検出を参考にしました。ただ、元の論文では第一項の符号が逆になっているのですが、これは論文の方の間違いかと思います。もし私の導出過程に間違いがあればTwitterかコメントで教えてください。 kl_with_glasso

さて、ここで得られた三つの項からなる数式は定性的にはどう捉えることができるでしょうか。第1章で紹介したGGMの枠組みを使えば、それぞれの項は次のように解釈することができます。

  • 第1項 近傍の生成および消滅の異常検知: これは、ある変数xix_iがどれだけ多くの他の変数と関連しているか、つまりその変数の次数(直接的な繋がりの数)を測るものです。近傍とは、その変数に直接リンクしている他の変数の集まりのことです。lAl_Aにおける非ゼロ要素の数がxix_iの次数と同じであるため、この項はxix_iの近傍における変化、すなわち新たな接続の生成や既存の接続の消滅を検出する指標として機能します。

  • 第2項 - 近傍グラフの「緊密さ」: これは、変数xix_iの近傍にある変数間の関係の強さ、すなわちグラフにおけるエッジの重みがどれだけ「緊密」に結びついているかを表します。もしxix_iが他の変数jjに対してただ一つのエッジを持っている場合、この項はxix_ijjの間の相関係数の差を、xix_iに関連する精度λA \lambda_AλB\lambda_Bで割ったものとなります。これにより、変数間の相関の強さがどのように変化しているかが測定されます。

  • 第3項 - 各変数の精度または分散の変化: この項は、変数間の相関関係の変化よりも、各変数の精度(もしくは分散)がどのように変わるかを示しています。精度は変数の不確実性の逆数であり、精度が高いほど不確実性が低くなります。したがって、この項は個々の変数の不確実性がどのように変化しているかを捉える指標です。

要するに、これら3つの項は、変数間の関係、それらの関係の緊密さ、そして個々の変数の不確実性がどのように変化しているかを検出するための、GGMにおける異なる側面を捉えています。これらの指標を通じて、ネットワークの構造的な変化や変数間の関連の強度の変化、そして個々の変数の確実性の変化を定量的に評価することができるようになります。

グラフィカルラッソをペアトレードに応用する 【応用編】
コメント
新着記事
Copyright © 2023 Coin News DAO. All rights reserved.

Site Map

Twitter(X)