「金融データサイエンス基礎」連載の3本目(Part 2)です。前の2本で「なぜ違うのか」(Part 0)と「ドメイン」(Part 1)を見ました。今回は、モデルを回す前に見るべき統計の目を見ます。
(前の記事: https://han-co.com/ja/blog/part1-credit-card-business )
原文は私のブログに先に公開しています → https://han-co.com/ja/blog/part2-statistics-probability
Part 1でドメインを見たので、いよいよデータに下りていきます。ただ、機械学習にすぐ進まず統計から押さえるのには理由があります。信用で私たちが一日中投げかける問いは、「モデルがよく当たるか」より「この違いは本物か、それとも偶然か」に近いのです。その問いに答える道具が統計です。
派手な部分ではありません。それでもこの土台が崩れると、その上に載せたモデルは砂上の楼閣になります。たいてい、モデルが現実と合わない結論を出すときは、この土台に問題があることが多いです。
分布からして違います
一般的な統計の入門は正規分布から始まります。ところが金融データを正規分布だと仮定して入ると、たいてい外れます。信用データは形からして違います。
信用データの分布は正規分布から遠いです。貸し倒れの有無は一方に偏った稀少事象、LGDは0と1に集まる二峰型、取引金額は右に長い裾です。
- 貸し倒れの有無は0(正常)か1(貸し倒れ)のどちらかですが、貸し倒れは通常1〜5%の稀な事象です。ほとんどが正常の側に偏っています。
- 貸し倒れ時の損失率(LGD)は、0付近(ほぼ全額回収)と1付近(ほとんど回収できず)に集まる二峰型が多いです。平均を取ると、肝心のその平均値の近くにはデータがあまりありません。
- 取引金額のような変数は、右に長い裾を引きます。ほとんどは小さく、たまに非常に大きい、裾の厚い分布です。
なので信用では、まず分布を見ます。対数変換で裾を抑え、平均より分位数を見て、ベータ分布(LGD)や負の二項分布(延滞件数)のように、データの形に合った分布を選びます。分布を間違って仮定すると、その上のすべての計算が狂い始めます。
点ではなく区間で
「このセグメントの貸し倒れ率は3%です」という言い方は、実は現象の半分しか表していません。標本が100人だったか10万人だったかで、その3%の重みがまったく違うからです。だから点推定と同じくらい区間推定が大事です。信頼区間も「真の値がこの区間にある確率」ではなく、同じやり方で推定を繰り返したとき、その区間が真の値を含む割合だという点は、押さえておく価値があります。よく誤解される部分です。
信用では、標本が小さいセグメントがよく生じます。新商品の初期顧客、特定の限度額帯、特定のチャネルといったものです。こういうときはブートストラップが実用的です。手元のデータを復元抽出で何度も取り直し、そのたびに統計量がどれだけ変わるかを見て、不確実性を見積もる方法です。
統計で最もよくある落とし穴:多重検定
ここは別に強調しておきたいところです。信用モデルを作っていると、変数の候補が数百個ずつ出てきます。それを一つずつ貸し倒れ率と比べながら「有意か」を見ます。ところが数百個を同時に検定すると、純粋に偶然でも「有意に見える」変数があふれます。何の関係もない変数100個を5%基準でテストすると、平均5個は有意に出ます。
なので、変数を眺めていて見つけた「不思議なパターン」は、たいてい多重検定の産物です。補正なしに信じてはいけません。いちばん単純な補正はBonferroniです。検定を多くするほど通過の基準をその分だけ厳しく上げるもので、変数100個を見るなら5%ではなく0.05%を基準にする、という具合です。安全ですが保守的すぎて、本物の変数まで落としてしまいがちです。なので実務でより多く使われるのがBenjamini-Hochberg(FDR)です。「有意だと選んだものの中に、偽物が何%まで混じってよいか」を制御するやり方で、多少の偽物を許す代わりに、本物の変数をより多く拾います。Part 0で「検証指標は良いのに本番で崩れる」という話をしましたが、その原因の一つがこれです。
小さなセグメントを扱うベイジアンの目
頻度主義がデータにだけ語らせるとすれば、ベイジアンは「事前に知っていたこと」と「データが語ること」を掛け合わせて信念を更新します。信用でこれが特に役立つのは、小さなセグメントの貸し倒れ率の推定です。顧客30人のセグメントの貸し倒れ率が0%と出たからといって、本当に0%のはずがありません。データが少ないほどその推定値を全体平均の方へ強く引き寄せ、データが貯まるほど自分の観測値を信じさせる、これがshrinkageです。標本が小さいセグメントほど全体平均に近く、大きいセグメントほど自分の値に近く補正される、というわけです。階層モデルは、この引き寄せを手作業ではなくモデルの構造の中で自動的に処理します。セグメントごとに別々に推定しつつ全体から情報を借りてきて、データの少ないセグメントが自然に全体の方へ集まるようにする方法です。
バイアスはデフォルトです
最後はバイアスです。そして信用では、バイアスは例外ではなくデフォルトです。
- 選択バイアス:承認した顧客の結果しか見えません。Part 0のあの話です。
- 生存バイアス:すでに離脱した顧客がデータから抜けると、残った人だけを見て誤った結論を出します。
- リーク(leakage):意思決定の時点では知り得なかった未来の情報が、変数に漏れ込むことです。貸し倒れた後に更新されたフィールドをうっかり使う、といった具合です。検証指標を非現実的に良く見せる主犯です。
- 標本と母集団の不一致:学習した母集団と、実際にモデルを適用する母集団が違う場合です。新規与信審査が常に抱えている問題です。
標本を扱うとき、不均衡なデータでは層化抽出がほぼ必須で、何より「このデータは、自分が答えたい問いの母集団を代表しているか」を絶えず問い続けなければなりません。
まとめ
統計は派手ではありませんが、結局のところ正直さの道具です。まず分布を見て、点ではなく区間で語り、多重検定を疑い、小さな標本を謙虚に扱い、バイアスをデフォルトと仮定すること。信用データを読む目は、ここから始まります。
次のPart 3では、この土台の上に機械学習を載せます。なぜロジスティック回帰がブースティングの時代でもスコアリングの標準として生き残ってきたのか、そして金融ではなぜ交差検証さえ違うやり方でなければならないのかを見ていきます。
この記事は han-co.com で最初に公開し、韓国語と日本語で連載しています。手描き図つきの原文とメール購読はこちらです → https://han-co.com/ja/blog/part2-statistics-probability