確率、基準、そして公正な検定
ロジスティック回帰は線形スコア z=b₀+b₁x₁+…+bₚxₚ を確率 p=1/(1+e^(-z)) に変えます。スコアはオッズの対数 lnp/(1-p)=z なので、xⱼ が1単位増えると上昇日のオッズは e^bⱼ 倍になります。前に StandardScaler を Pipeline の中に置けば単位は1標準偏差になり、異なる特徴量のオッズ比を比べられます。モデルは対数損失 -1/nΣ(yln p+(1-y)ln(1-p)) と C で制御される罰則の最小化で当てはめます(C が小さいほど罰則は強い)。当てはめたオブジェクトは確率用の predict_proba と、閾値0.5でのクラス用の predict を与えます。
方向モデルは、何もしなくても得られる水準と比べて評価しなければなりません。SPYの約55%の日は上昇日なので、常に「上昇」と予測すれば55%当たります。これが基準で、予測時にテストのラベルは未知なので、基準は学習データのラベルから求めます。正解率は閾値に依存しますが、AUCは依存せず、無作為な上昇日が無作為な下落日より高いスコアを得る確率に等しい値です(0.5は能力なし)。対数損失は自信のある誤りを罰します。引け時点で分かる4つの特徴量を使い、時間順に分割(70%を学習、後の30%をテスト)すると、ラボのモデルの正解率は基準の 55.1% に対し 55.3%、AUCは 0.501、対数損失は 0.688 で、コインの 0.690 をわずかに下回るだけです。1をわずかに下回るオッズ比は、昨日の上昇が次の上昇のオッズをわずかに下げることを示しますが、取引には使えない効果です。
- 学習ラベルから求めた基準と比べる:多数派クラスの予測だけで約55%になる。
- AUCと対数損失は閾値に依存しない。0.5と0.69が能力なしの値。
- パイプライン内で標準化すれば、e^bⱼ が1標準偏差あたりのオッズ比になる。
ラボ:採点される内容
- 時間順の分割10点
- パイプライン10点
- 3つのスコア20点
- 多数派クラスの基準15点
- オッズ比15点
- SPYの方向の研究30点