アセットマネージャーのためのファイナンス機械学習:テストデータのオーバーフィッティング 適合率と再現率
過去の時系列データを用いたバックテストの結果は、その投資戦略のその過去データに対してのパフォーマンスである。複数回のバックテストを行い、最も高いパフォーマンス(シャープレシオ)の戦略の選択は、過学習な多重テストによる選択バイアス(SBuMT)が入って誤っている可能性が高く、アウトオブサンプルで、著しく落ちた性能を示すことが多い。
発見された選択が、テストデータに対するオーバーフィッティングであると無効にできるフレームワークを扱う。
多重テストにおける適合率と再現率
$${S}$$個の投資戦略の内、実際の期待リターンが正のものが$${S_T}$$個、負のものが$${S_F}$$であったとする。$${S_F+S_T=S}$$で、$${\theta=S_T/S_F}$$がオッズである。
混同行列を考えれば、
偽陽性率(Type $${{\rm I}}$$ Error)を$${\alpha}$$とすると、
$${\displaystyle{\alpha=\frac{FP}{TN+FP}}}$$。
$${FP+TN=S_F}$$であるから、偽陽性の数は$${FP=\alpha S_F}$$
偽陰性率(Type $${{\rm II}}$$ Error)を$${\beta}$$とすれば、偽陰性の数は、$${FN=\beta S_T}$$、真陽性の数は$${TP=(1-\beta)S_T}$$で与えられる。
これから、適合率(percision)は$${\theta}$$を用いて、以下のようになる。
$${precison=\displaystyle{\frac{TP}{TP+FP}=\frac{(1-\beta)S_T}{(1-\beta)S_T+\alpha S_F} }}$$
$${\displaystyle{= \frac{(1-\beta)\theta}{(1-\beta)\theta+\alpha}=1-\frac{\alpha}{(1-\beta)\theta+\alpha}} }$$
適合率は$${\theta}$$の増加関数であるから、まずオッズの高い戦略を選ぶべきであり、パフォーマンスの高い戦略でも、適合率が50%以下、つまり
$${\displaystyle{\frac{\alpha}{(1-\beta)\theta+\alpha} > \frac{1}{2},\ \ \alpha>(1-\beta)\theta}}$$の戦略は偽である可能性が高い。
戦略の再現率は、$${\alpha}$$に依らず、$${\beta}$$のみに依存しており、
$${recall=\displaystyle{\frac{TP}{TP+FN}=1-\beta}}$$
である。
数値例として、バックテストが利益を生む確率が$${0.01}$$とすると、オッズは$${\theta=1/99}$$となる。標準的な閾値の$${\alpha=0.05, \beta=0.2}$$を用いると、
$${TP+FP=\displaystyle{0.8\cdot\frac{1}{1+99}+0.05\cdot\frac{99}{100}=0.575}}$$。
よって、1000回の試行で58例の陽性が出るが、そのうち、真の陽性は8例だけで、残りの50が偽陽性である。これより、帰無仮説のp値を$${0.05}$$として判定したとしても、偽発見率は$${50/58\times 100=86.09}$$%で、殆どが偽であると言える。
$${\alpha=0.05,\ \beta=0.05}$$で再現率と適合率を、$${\theta\in[0,1]}$$でグラフを描くと以下のようになる。
多重テスト下での適合率と再現率を考える。
$${\alpha}$$は単テストでのType $${{\rm I}}$$エラーであるから、同じテストを独立にK回行うと、K回の内一回も偽陽性のでない確率は$${(1-\alpha)^K}$$で、K回内で少なくとも一回は偽陽性の出る確率は$${\alpha_K=1-(1-\alpha^K)}$$であり、これをファミリーワイズエラーFWERと呼ぶ。
同様に、単テストでType $${{\rm II}}$$エラーの確率が$${\beta}$$で、同じテストを独立にK回行った全ての回で偽陰性が出る確率は、$${\beta^K}$$となる。
偽陽性で、K回中一回でも起こる可能性を重視するのは、エラー一回でも失敗とカウントされるからであり、偽陰性の場合は陽性が見逃されているだけと判断されているからである。
K回後の再現率と適合率は、以下のようになる。
$${precison=\displaystyle{= \frac{(1-\beta_K)\theta}{(1-\beta_K)\theta+\alpha_K}=\frac{(1-\beta^K)\theta}{(1-\beta^K)\theta+1-(1-\alpha)^K}} }$$
$${recall=1-\beta^K}$$
Kを1から25回繰り返した時の適合率と再現率の曲面は以下の様になる。
この記事が気に入ったらサポートをしてみませんか?