これからの「お金」の話をしよう

(旧 システムトレードのススメ)

全数検索の未来

f:id:uki-profit:20170814220040j:plain

暫く更新を怠ってしまいました。今回は統計のお話です。

 

トレードモデル構築のアプローチには2通りあります。演繹的手法と帰納的手法です。説明するまでもないと思いますが、前者はセオリードリブン、後者はデータドリブンな手法です。過去記事の「相関関係か因果関係か」でも触れましたが、この両者にはそれぞれメリットとデメリットがあり、両者を組み合わせて使うことが重要です。

we.love-profit.com

 

帰納的なアプローチとして、「全数検索」という言葉を耳にすることがあります。全数検索とは、手持ちの目的変数と説明変数の全ての組み合わせの説明力を愚直に調査するものです。この言葉は(おそらく土屋氏の) 造語であり、実際の計算機科学では力まかせ探索と呼ばれます。この手法は確かに有効な手法ではあるのですが、以下の2つの問題により現実問題への適用が難しくなっています。「組み合わせ爆発」と「データ・スヌーピング・バイアス」です。

まず1つ目の問題ですが、こちらは近年では計算機の能力向上により、並列で計算をぶん回せば解決できる場合が多くなっています。研究機関でなく個人レベルの場合には、多少問題になる場合があります。

2つ目の問題であるデータ・スヌーピング・バイアスとは、多数の指標を検証した際に誤って有意でないものを偶然に発見してしまう事象のことを指します。もう少し統計学に体系立って説明すると、このような統計検証上の間違いには2通りが存在します。タイプⅠエラーとタイプⅡエラーです。

 

タイプⅠエラーとは、有意でないデータを有意と見なしてしまう間違い(false discovery)であり、データ・スヌーピング・バイアスとはこれに該当します。これに対してタイプⅡエラーとは、有意なデータを有意でないと見逃してしまう間違い(missed discovery)です。一般的に、タイプⅠエラーのほうが重篤な間違いであるとされています。なぜならタイプⅠエラーは将来の損失に直結する可能性がありますが、タイプⅡエラーはあくまでも利益の喪失となり直接的な損失が発生する可能性が低いからです。今回は単純な回帰モデルで全数検索したときのエラーの発生度合いをランダムシミュレーションで観察していきます。

 

◆検証1.検出率カーブの観察

<要領>

・目的変数Yと説明変数Xとして、正規分布に従う乱数をN個発生させます。ただし、この両者にはある一定の相関(情報係数IC)を設定しておきます。

・YとXの回帰分析のP値により、その指標の有意性を判定します。

・サンプル数Nと情報系数ICをパラメータとして数個の水準を振り、それぞれについて1万回繰り返し試行し、有意と判定された回数(=検出率)をプロットします。

<結果>

170519-1.png

この結果から、検出カーブの形状によってそれぞれのエラーの発生のしやすさが見て取れます。図の左下の領域で検出率が高い場合、タイプⅠエラーの発生確率が大きくなり、逆に図の右上の領域で検出率が低い場合、タイプⅡエラーの発生確率が大きくなります。

 

では、実際にはどのような検出カーブの形状が理想なのでしょうか。理想的な検出カーブの要件は4つあり、(1)高い情報係数の領域で検出率が100%(タイプⅡエラーが発生しない)、(2)低い情報係数の領域で検出率が0%(タイプⅠエラーが発生しない)、(3)中間領域の勾配がタイト、(4)調査の目的・目標により、中間領域を任意に左右にシフトできる。

この中で重要なものは、(3)の要件となります。(3)の要件が満足できると、たいていの場合に(1)と(2)は満足されるからです。また(4)の要件は、検出の有意水準を調整することで簡単に実現することができます。

ここで(3)の検出カーブの勾配は、検証するデータセットの「素性」により決定されます。例えば、図に示しているように(独立した)サンプル数が多いというのも、重要な素性となります。(独立した)サンプル数が多い場合には、勾配がタイトになることが見て取れます。また、データの分散値(レジデュアル分散)によっても勾配が大きく変化します。具体的には「過分散」の場合は勾配がフラットになってそれぞれのエラーが発生しやすくなります。当然ですが、株式市場のデータは「過分散」であることは言うまでもありません。

 

◆検証2.全数検索時のエラー発生の度合い

<要領>

・サンプル数N=2000のデータについて、10000個のファクターを全数検索する場合を考えます。

・検出率カーブは、検出の有意水準を3通りに振って考えます(左下図)。

・10000個の指標の持つ情報係数の分布を、ポワソン分布に従い設定します(右下図)。10000個のうち、9000個は全く相関のない無益な指標(IC=0)です。一般に投資指標として有効な指標はIC>=0.1と言われており、10000個の指標のうちこれに該当する指標はわずか25個(0.25%)とします。

・今回は、この25個の指標を検出対象として、各エラーの発生度合いを観察します。 

170519-2.png

<結果>

170519-3.png

有意水準を厳しくすると、タイプⅠエラーは減少し、タイプⅡエラーは増加することが見て取れます。上記は理想的なシミュレーションであり、実際の株式市場ではこの結果よりも悪化します。実際に全数検索を行う場合はタイプⅠエラーを避けるため、有意水準を驚くほど厳しく設定する必要があります。しかしその代償として有意なものの取りこぼしが多数発生し、ようやく検出した指標もその殆どが有意でないものとなってしまいます。さらにわずかに得た有意な指標も、株式市場の構造変化により将来的に有効である保証はありません。

 

ここで最も重要なことは、「タイプⅠエラーとタイプⅡエラーの発生はトレードオフ」であり、両者を同時に実現することは難しいと言うことです。現時点ではこれらのエラーを排除するために、最終的には「演繹的考察」に頼るしかありません。しかしその判断を人知に依らず、与えられたデータのみを使ってインテリジェントな手法で実現する。この統計的命題を解決することが、投資における人工知能(機械学習)の本来の役割のはずです。ディープラーニングや自然言語処理によって、ビッグデータを分析し指標化することも重要ですが、この根本的な課題解決がないがしろにされているような気がします。