はい・いいえをモデル化する
結果が数ではなく出来事であることがあります。市場が上げて終わったか下げて終わったか、株が上位半分に入ったか、企業が債務不履行になったか、などです。直線は 0 から 1 の範囲を外れるので確率のモデルには使えません。ロジットとプロビットは、線形スコア z=α+βx を S 字曲線に通します。ロジットは p=1/(1+e−z) を使うので、スコアは対数オッズ ln1−pp です。プロビットは正規分布関数 p=Φ(z) を使います。確率はほぼ同じで、プロビットの係数はロジットの約 1/1.6 です。statsmodels では smf.logit('up ~ lag', data).fit() と書き、最小二乗ではなく最尤法で推定します。観測された上げ下げが最も起こりやすくなる係数を選ぶのです。
p=1+e−z1,ln1−pp=α+βx,∂x∂p=p(1−p)β,ℓ=i∑[yilnpi+(1−yi)ln(1−pi)],RMcF2=1−ℓ0ℓ(1) ロジットを手計算で読むスコア
z=0.2 なら
p=1/(1+e−0.2)=1/1.8187=0.55 です。傾き
β=−0.054 は、
x が1単位増えるごとにオッズが
e−0.054=0.947 倍になることを意味します。確率そのものへの効果は位置によって変わり、
p=0.55 では
p(1−p)β=0.55⋅0.45⋅(−0.054)=−0.0134 で、これが限界効果です。尤度は実際に起きたことの対数確率を足し合わせます。予測確率
0.8,0.3,0.6 と結果
1,0,1 なら、対数尤度は
ln0.8+ln0.7+ln0.6=−1.09 です。マクファデンの疑似決定係数は定数だけのモデルと比べます。そのモデルが
ℓ0=−69.3、自分のモデルが
ℓ=−60 なら
1−60/69.3=0.134 です。
実データがこの教訓を正直に保ちます。2005年以降の 5,403 営業日の SPY では、54.86% の日が上げて終わりました。翌日の方向を当日のリターン(%)でロジット回帰すると α^=0.198、β^=−0.054、z=−2.34(p=0.019)となり、2% 下げた後に上げる確率は 57.6%、横ばいの後は 54.9%、2% 上げた後は 52.2% です。限界効果は −0.0134 で、プロビットも一致します(β^=−0.034、限界効果 −0.0134、対数尤度も同じ −3716.76)。しかしマクファデンの R2 は 0.0007 で、確率が二分の一を超えたら上げと予測しても的中は 54.97%、常に上げと答える場合の 54.86% と大差ありません。係数は統計的に検出できても、取引には役に立たないことがあります。
- 確率には曲線が必要:ロジットとプロビットは当てはめた確率を0〜1に保ち、結果もよく一致する。
- 係数は対数オッズ:指数を取ればオッズ比、p(1−p) を掛ければ確率への効果。
ラボ:採点される内容
- スコアから確率へ15点
- オッズ比10点
- 限界効果15点
- 対数尤度20点
- 疑似決定係数15点
- 用語を結び付ける10点
- 有意だが役に立たない15点