限度枠を上げると貸し倒れは増えるのか? 公開データ3種で検証した記録
限度枠を上げると、その人の貸し倒れ確率は上がるのでしょうか、下がるのでしょうか。常識的には上がりそうですが、データは逆に「下がる」と答えます。この逆説をバイアス除去で解き、公開データ3種で検証しながら、限度枠効果の符号がいつ反転するのかを整理しました。
クレジットカードの限度枠を上げると、その人が貸し倒れる確率は上がるのでしょうか、下がるのでしょうか。常識的には上がりそうです。より多く借りられるからです。ところがデータを開けてみると逆です。この記事はその逆説をバイアス除去(debiasing)で解き、公開データ3種で検証しながら、最後に意外な結論にたどり着く記録です。
Part 0で選択バイアスの話をしました。この記事は、その選択バイアスが因果推論と正面からぶつかる実践例です。因果推論そのものは基礎連載で別に深く扱いますが、ここではそれが実務でどう働くのかを一足先にお見せします。コードとデータはすべて公開のものだけを使いました。
1. 直感と正反対のデータ
まず台湾のクレジットカードデータから始めます。2005年の台湾のカード顧客3万人について、各自の限度枠と請求額(残高)、そして翌月に延滞したかどうかを収めた公開データです(UCI公開)。限度枠・残高・貸し倒れを一度に持つ数少ない公開データなので、出発点に適しています。ここで限度枠の階級ごとの実際の貸し倒れ率を描いてみます。
限度枠の最下位10%の貸し倒れ率は35.9%、最上位10%は11.9%です。限度枠が高いほど貸し倒れ率が着実に下がります(相関係数 −0.15)。
限度枠を20倍近く高く与えられた集団が、貸し倒れは3分の1ほどしか出しません。限度枠をどんどん上げてもよい、ということでしょうか? 当然違います。ここには落とし穴があります。
2. 犯人は選択バイアス
限度枠はランダムに与えられるわけではありません。既存のモデルやルールに従って、もともと信用の良い人に高い限度枠が付与されます。だから「限度枠が高い」ことは、そのまま「もともとよく返す人」というシグナルです。限度枠と貸し倒れの負(−)の関係は、限度枠の効果ではなく、限度枠の裏に隠れた信用度が作った見かけです。Part 0で見た選択バイアスが最も露骨に働く事例です。
データをそのまま学習させると、モデルは「限度枠が高い=安全」と学びます。このモデルで「限度枠を上げたら?」をシミュレーションすると、貸し倒れが減ると答えます。この結果を政策判断にそのまま使うと危険です。
3. 解法: 限度枠を「残差」に変える
核心のアイデアは単純です。信用度が同じなのに限度枠だけが違う人々を比べれば、限度枠の純粋な効果が見えます。完全なマッチングは不可能なので、代わりにこうします。
- 信用度の特徴量(X)で各自の「予想限度枠」を予測します(既存の限度枠付与の模倣)。
- 実際の限度枠から予想限度枠を引いた値が限度枠残差(rL)です。信用度では説明できない、政策や偶然が生んだ限度枠の変動分です。
- 残高と貸し倒れも同じやり方で残差にします。
- 限度枠残差から残高残差へ、さらに貸し倒れへとつながるチェーンを立てます(限度枠→残高→貸し倒れの経路)。
- 貸し倒れは0と1なのでロジット空間で差を補正し、最初に予測した貸し倒れ確率にその補正を足して最終値を作ります。
注意が2つあります。第一に、データ漏れを防ぐため、残差は必ず交差適合(cross-fitting)で作らなければなりません。自分自身を見て予測すると残差が偽物として小さくなります。第二に、限度枠の付与が一貫しているほど、残差の大きい人はまれです。そのまれな「自然実験」のサンプル(残差の大きい人)に重みを多く与えます。
これは因果推論の Double Machine Learning(DML)と同じ構造です。DMLはこう要約できます。処置(ここでは限度枠)と結果(貸し倒れ)をそれぞれ機械学習で交絡変数(信用度)から予測して引き抜いたあと、残った残差どうしの関係で効果を推定します。機械学習が交絡を柔軟に吸収しつつ、そのモデルのバイアスが効果推定へ漏れないよう交差適合で切り分けるのが核心です。結局、限度枠という処置から信用度という交絡を取り除く作業です。
始める前に、一つ限界を先に断っておきます。私たちが統制する信用度の特徴量は、本当の限度枠付与基準(所得、外部の信用スコアなど)の代理変数にすぎません。だからバイアス除去はバイアスを「減らす」のであって「完全に消す」のではありません。統制変数が貧弱なデータほど、除去後に残った負(−)には取り切れなかったバイアスが混じっている可能性があります。
4. 検証1、台湾クレジットカード: バイアスは消えたが効果もほぼ消えた
バイアス除去を適用すると逆説が解けました。限度枠と貸し倒れの見かけの相関 −0.15 のうち約70%が選択バイアスで、除去して残った直接効果は小さな負(−0.05)でした。仮説(「限度枠↑→貸し倒れ↑」)とは逆方向です。
では仮説はどこで検証するのでしょう。反事実(counterfactual)、全員の限度枠を0.5倍から2倍まで変えながら予測貸し倒れ率を描いた図です。
赤(naive)は限度枠↑→貸し倒れ↓という逆説をそのまま出力します。残高チェーン(青)はほぼ平坦になります。利用率と直接(direct)チェーン(紫・緑)は弱い負を保ちます。
詳しく分析すると、次のことが分かります。
- 限度枠→残高は正(+)ですが、移行率(パススルー)が5.7%と弱いです。限度枠を1だけ増やしても残高は0.057しか増えないという意味です。全額引き出される分割ローンならこの値が100%に近いのに比べると、リボ枠はほとんど使われず、負担に転換されにくいのです(sticky)。
- 本当の負担シグナルは残高ではなく利用率(残高/限度枠)でした。そして限度枠を増やすと利用率はむしろ大きく下がります(−0.39、余裕が生まれる)。
- 残高だけを取り出して線形できれいに推定すると、残高→貸し倒れは有意な正(+)(p=0.001)で仮説が成立します。ただし大きさはごく小さいです。
ここで方法論についての教訓が一つ出てきます。シグナルの弱い残差段階に柔軟なGBMを使うと過学習します。train AUCは上がるのに test AUC はむしろ基本モデルより下がり、trainとtestの差が0.047と基本モデルの0.008より6倍開きました。一方、残差だけを使う線形の2次ステージは差が0.009とほぼなく、本当の効果をきれいに復元しました。弱い因果シグナルは線形や正則化モデルで扱うのが適切でしょう。
5. 落とし穴その一: 観測窓が短すぎる
このデータの貸し倒れは「翌1か月」の延滞です。実務の貸倒モデルはふつう12か月後を見ます。短い窓には分析に大きく影響するバイアスがもう一つあります。延命(postponement)です。限度枠に余裕のある人は、その余裕でもう一か月持ちこたえ、貸し倒れが観測窓の外へ押し出されます。貸し倒れが減ったのではなく先送りされただけなのに、「安全」と記録されます。
これはバイアス除去(交絡除去)では捉えられない別のバイアス(生存、打ち切り)です。観測窓を1か月から5か月まで延ばして確認しました。
窓を延ばしても負(−)が正(+)に反転することはありませんでした(1か月 −0.06 から 5か月 −0.13)。ただしこの実験は、窓を延ばすほど信用度の統制が薄くなって交絡し、5か月は12か月にはるかに及びません。つまりUCI(1か月)では12か月の問題を検証できない、という結論です。
そこで本当に長期のデータが必要でした。
6. 検証2、Lending Club: 長期、そして「引き出された」与信
Lending Club は米国のP2P貸付プラットフォームです。2007年から2013年のあいだに出て、すでに満期が終わったローン23万件を使います。満期が終わっているので、完済か償却(charge-off)か最終結果が分かります。ここに同じバイアス除去を回すと、決定的な区別が現れます。
loan_amnt(引き出された与信、緑): バイアス除去後も 与信↑→貸し倒れ↑ がきれいに成立します(p<0.0001)。複数のリスク等級で一貫して増え、むしろバイアス除去が効果をさらに強めました。仮説成立です。total_rev_hi_lim(未使用のリボ枠、紫): 長期でも効果はほぼ0です。UCIの限度枠と同じです。
差の本質は観測窓ではなく「引き出された与信か、未使用枠か」でした。分割ローンは全額引き出されて100%負担になりますが、リボ枠は引き出す前は負担ではありません(headroom)。両者をつなぐ橋が移行率(限度枠→残高)で、UCIではそれが5.7%にすぎなかったため限度枠効果が弱かったのです。
7. 検証3、Home Credit カード: 貸し倒れ定義が符号を反転させる
Home Credit は Kaggle コンペで公開されたデータで、クレジットカードの月次パネルと申込ローン(分割)の2種類を含みます。まずカードパネル、つまり同じリボ商品で実際の限度枠と残高、延滞を数十か月追跡したデータでとどめを刺そうとしました。ところが結果がまた反転しました。今回は警告でした。
実際に使われているアクティブなカード約1.6万枚を見ると、利用率が高いほど貸し倒れが低く出る、UCIと正反対の方向が出ました。なぜでしょう。
左のUCIは利用率が高いほど貸し倒れ率が上がります(実負担)。右のHome Creditは最下位の利用率分位(残高がほぼ0)だけに貸し倒れが約14%集中し、残りの分位は0.1%前後です。
原因は明確でした。Home Creditの「貸し倒れ(SK_DPD≥90)」は、信用の負担ではなく、少額残高を放置して延滞した休眠口座を捉えていたのです。カードを実際に使う人は貸し倒れがほぼ0です。つまり貸し倒れ(outcome)の定義が「信用損失」ではなく「放置」を捉えると、いくらバイアス除去をうまくやっても符号が丸ごと反転します。
8. 検証4、Home Credit 個品割賦: ついに逆説が反転する
ここまでバイアス除去を試しましたが、rawで負(−)だった逆説がバイアス除去後に正(+)へ反転するデータはありませんでした。その条件を備えたデータも、すぐ隣にありました。同じHome Creditの申込ローン(カードではなく個品割賦、貸し倒れ率8%、30万件)です。全額引き出される分割ローンで、貸し倒れは本物の信用損失です。そして今回は外部の信用スコア(EXT_SOURCE)と所得を一緒に統制しました。
左(raw)は与信が大きいほど貸し倒れが低い逆説(4変数すべて負)です。右(バイアス除去)は信用度を取り除くと正(+)へ反転します。
| 変数 | raw 相関 | バイアス除去係数 | 判定 |
|---|---|---|---|
| 融資額 | −0.030 | +0.018 | 反転 |
| 月返済額 | −0.013 | +0.059 (p≈10⁻²⁰) | 反転(最強) |
| 収入対比の融資 | −0.008 | +0.046 | 反転 |
| 購入価格 | −0.040 | −0.010 | 反転せず |
表の係数は標準化した残差に対するロジット係数なので、大きさ自体は小さいです。月返済額 +0.059は、1標準偏差増えるとき貸し倒れオッズが約6%上がる程度です。30万件なのでp値が極端に小さいのですが、これは「効果が大きい」ではなく「符号が正(+)であることが確実だ」という意味です。この記事の主張は大きさではなく方向(負から正への反転)にあります。
興味深いことに、購入価格(AMT_GOODS_PRICE)だけは反転しません。返すべき負担は融資額や返済額であって品物の価格そのものではないので、理論とぴたり合います。
では、なぜここでは反転し、UCIやLending Clubのリボ枠では反転しなかったのでしょう。2つの条件が同時にそろう必要があります。第一に、引き出された与信(全額借りた実負担)なので本当の効果が正(+)であること。第二に、選択バイアスが強くて(大きいローンほど優良顧客)rawが負(−)であること。個品割賦は両方を満たします。だからrawは選択バイアスに隠れて負で、バイアス除去すると本当の負担効果である正が現れます。
9. 総合: 逆説はいつ反転するのか
| 与信の種類 | raw 限度枠-貸し倒れ | バイアス除去後 | 事例 |
|---|---|---|---|
| 未使用のリボ枠 | 負(逆説) | ほぼ0 | UCI、LC、HCカード |
| 引き出された与信、弱い選択 | 正(逆説なし) | 正 | LC ローン額 |
| 引き出された与信、強い選択 | 負(逆説) | 正(反転) | HC 個品割賦 |
3つのデータを貫くと、2つが残ります。
- 「限度枠↑→貸し倒れ↑」は普遍法則ではありません。未使用枠は使わなければ負担ではなく効果がほぼ0で、利用率と残高の符号はポートフォリオと貸し倒れ定義に左右されます。
- しかし逆説は条件が合えば実際に反転します。バイアス除去は偽の負(−)を取り除き、本当の正(+)を復元します。ただし、それができる与信(引き出された実負担)に限ってです。
10. では実務では
この結果を実務に持っていくとき、まず2つを強調しておきたいです。
一つは限界です。バイアス除去が統制する信用度の特徴量は、本当の限度枠付与基準の代理変数にすぎないので、残った効果を「純粋な因果」と断定してはいけません。とくに所得や外部スコアがなく、本当の信用度を再現しにくいデータほどそうです。また、この記事は貸し倒れ確率(PD)を扱いましたが、実務の貸倒率は損失金額ベースのことが多いです。損失金額は限度枠と機械的に連動するので(限度枠↑→エクスポージャー↑→損失金額↑)、同じデータでも符号が正(+)に見えることがあります。何をoutcomeに置くかが結論を変えます。
だから方法と結論を分けなければなりません。
- 方法(バイアス除去)は妥当で移植可能です。本当の正(+)の効果があるとき(Lending Clubの引き出された与信)、方法はそれをきれいに復元しました。ほかのデータで負(−)が出たのは方法の失敗ではなく、「その与信はもともと貸し倒れを上げない」という事実の正確な反映です。
- 方向性の結論は移植できません。公開データで「どのポートフォリオでも限度枠↑→貸し倒れ↑」と断定はできません。
- 実務データで必ず確認すべきことが2つあります。一つは移行率(dBalance/dLimit)、限度枠の増額が実際の引き出し負担にどれだけ転換するか。もう一つは貸し倒れ定義、12か月の貸し倒れが本物の信用損失を捉えているか、それとも放置や少額延滞を捉えているか。
この2つが限度枠効果の符号を決めます。バイアス除去は出発点にすぎず、答えはそれぞれのポートフォリオにあります。
付録. データと再現
- UCI “Default of Credit Card Clients”(台湾、3万件、1か月延滞)
- Lending Club 2007–2013 満期完了ローン(23万件、charge-off)
- Home Credit
credit_card_balanceカードパネルとapplication_train個品割賦(30万件、貸し倒れ8%) - 方法: K-fold 交差適合 残差化、isotonic キャリブレーション、残差加重、線形2次ステージ(DML)。Python(pandas, scikit-learn, lightgbm, statsmodels)。
- コードとノートブック(韓国語・日本語): github.com/HangilKim11/blog-research
この記事の数値と図はすべて公開データで再現できます。本文の結論は公開データに対するものであり、実務データの符号は上記2点で直接検証してください。