この記事で分かること
- 似た財務指標が14個ある学習用の架空データで、OLS(最小二乗法)の係数が標本で符号まで入れ替わる様子と、RidgeとLassoがλで係数を安定させる仕組み
- λを時間順の検証(訓練80件→検証40件)で決め、検証誤差が最小のλと「1標準誤差内で最も単純なλ」を比べる手順
- 残す・保留・落とす指標の一覧の作り方と、「Lassoで残った指標=因果的に効く指標」ではないことを踏まえた分析メモの書き方
想定読者:財務分析・クレジット審査・投資分析で、多数の財務指標を重回帰に入れ、変数を人手で削る前に別の方法を知りたい担当者
前提知識:重回帰分析と相関係数の基本(OLSとVIFは回帰分析入門で扱っています)。Pythonの知識は不要です。
結論:係数を縮めて安定させ、残す指標は検証で決める
自己資本比率、ICR、ROAなど似た財務指標を14個そろえて重回帰を回すと、標本を変えるたびに係数の符号が入れ替わり、予測式として使えないことがあります。正則化(係数に罰則を課して推定する方法)のRidge回帰とLasso回帰なら、罰則の強さλを決めるだけで係数を縮めて安定させ、Lassoでは一部の指標を除外することまで行えます。λは訓練期間と検証期間を時間順に分けて決めます。
次の設例(学習用の架空事例)では、標本を半分ずつに分けたOLSで、14指標のうち5指標の係数の符号が入れ替わりました。訓練80件で推定し、検証40件で測った翌期営業利益率の変化の予測誤差(RMSE)は、OLSが1.12ポイント、Lasso(λ=20)が0.97ポイントです。ただし差は標準誤差と同程度です。なお、過学習(学習データに合わせ込みすぎて未知のデータで性能が落ちる状態)の基本は用語ページに、信用リスクモデル全体の設計は信用リスク予測にAIを使うに委ねます。
設例の設計:似た指標が2つの束になっている
以下は学習用の架空事例です。実在の企業やデータではなく、乱数(Python の numpy、seed=8)で作った120件で、製造業の上場企業を想定した架空の40社の20X1〜20X3年度3期分(1社1期を1行)です。目的変数は翌期の営業利益率の変化(単位:パーセントポイント。以下pp)、説明変数は当期の財務指標14個です。図表1のとおり、14指標はROA
検算のため真の関係式を先に決めてあります。効くのはROA・自己資本比率・売上高成長率・研究開発費比率・在庫回転日数の5指標だけで、指標が1標準偏差(ばらつきの大きさ)動くと営業利益率の変化がそれぞれ+0.9・+0.5・+0.6・−0.3・−0.4pp動きます。他の9指標の係数は0、誤差の標準偏差は0.8ppです。実データでは真の式は分からず、同じ企業の複数期は似るため120件を独立とみなせない点も、設例とは異なります。
| 指標(単位) | VIF(倍) | 相関の絶対値0.8以上の相手(相関係数) |
|---|---|---|
| ROA(%) | 6.7 | 売上総利益率(0.86)、販管費率(−0.89) |
| 売上総利益率(%) | 5.9 | ROA(0.86)、販管費率(−0.87) |
| 販管費率(%) | 7.0 | ROA(−0.89)、売上総利益率(−0.87) |
| 自己資本比率(%) | 6.0 | 有利子負債/EBITDA(−0.83)、ICR(0.87) |
| 有利子負債/EBITDA(倍) | 4.8 | 自己資本比率(−0.83)、ICR(−0.84) |
| ICR(倍) | 5.6 | 自己資本比率(0.87)、有利子負債/EBITDA(−0.84) |
| 流動比率(%) | 1.2 | - |
| 総資産回転率(回) | 1.1 | - |
| 売上高成長率(%) | 1.1 | - |
| 研究開発費比率(%) | 1.3 | - |
| 設備投資比率(%) | 1.4 | - |
| 在庫回転日数(日) | 1.5 | - |
| 売上債権回転日数(日) | 1.3 | - |
| 配当性向(%) | 1.1 | - |
束の中の相関の絶対値は0.83〜0.89、束に含まれない組み合わせは最大でも0.34です。VIF(分散拡大要因。係数の推定のばらつきが、他の指標と相関がない場合の何倍かを表す目安。計算は回帰分析入門を参照)は、束の中の6指標が4.8〜7.0、残り8指標が1.1〜1.5です。よく使われる目安の「10超」には届きませんが、残り8指標と比べて4〜6倍の水準です。
OLSで何が起きるか:標本を半分にすると符号が入れ替わる
訓練80件のうち、20X1年度の40件を標本A、20X2年度の40件を標本Bとして、それぞれ14指標すべてでOLSを推定しました(結果は図表3の左側3列)。符号が入れ替わったのは売上総利益率・販管費率・有利子負債/EBITDA・ICR・配当性向の5指標で、いずれも真の係数が0の指標で、ICRは標本Aが+0.37、標本Bが−0.68でした。ROAと売上総利益率のようにほぼ同じ情報を持つ指標があると、OLSは「どちらがどれだけ効くか」を切り分けられず、標本が変わるたびに配分を変えます。
RidgeとLassoの仕組み:罰則項とλ
OLSは残差二乗和(予測値と実績値の差を二乗して合計したもの。以下RSS)を最小にする係数を選び、RidgeとLassoはRSSに係数の大きさへの罰則を足した値を最小にします。
最小化する値
OLS:RSS
Ridge:RSS + λ × (β₁² + β₂² + … + β₁₄²) (係数の二乗和)
Lasso:RSS + λ × (|β₁| + |β₂| + … + |β₁₄|) (係数の絶対値和)
λ(ラムダ)は罰則の強さで、λ=0ならOLSに戻り、大きくするほど係数は縮みます。Lassoは縮めると同時に一部を厳密に0にするため、変数選択を兼ねます1。λの数値は標本数や標準化で変わり、RidgeとLassoでは同じ数字でも強さを比べられません(scikit-learn のLassoのalphaは本記事のλ÷(2×件数))2。
2変数の手計算:Ridgeで符号が戻る
2指標x₁・x₂と目的変数y(いずれも10件で、平均0・標準偏差1に標準化。x₁とx₂の相関は0.9)について、X’X(X’はXの転置)が[[10, 9], [9, 10]]、X’yが[6, 5]とします。yとの相関はx₁が0.6、x₂が0.5で、どちらも正です。係数はOLSが「X’Xの逆行列 × X’y」、Ridgeが「(X’X+λI)の逆行列 × X’y」(Iは単位行列)で求まります。
OLS(λ=0):行列式=10×10−9×9=19。β₁=(10×6−9×5)÷19=0.789、β₂=(−9×6+10×5)÷19=−0.211
Ridge(λ=1):行列式=11×11−9×9=40。β₁=(11×6−9×5)÷40=0.525、β₂=(−9×6+11×5)÷40=0.025
x₂はyと正の相関を持つのに、OLSのβ₂は−0.211と負です。x₁と相関が高く、x₁の分を差し引いた残りに合わせ込んだ結果です。λ=1ではβ₂が+0.025に戻ります。偏りと引き換えに、推定のばらつきを抑えます3。
ひし形と円:Lassoだけがゼロを出しやすい理由
2つの係数の平面で罰則の大きさを一定にした境界線は、Ridgeが円、Lassoがひし形になります4。RSSが同じ値になる点を結んだ楕円が境界に最初に触れる点が解で、ひし形は頂点が軸上にあるため一方の係数が0になりやすく、円は通常0になりません。
標準化は必須で、訓練データだけで行う
罰則は係数の大きさにかかるため、元の単位(ROAは%、有利子負債/EBITDAは倍、在庫回転日数は日)のままでは結果が単位に左右されます5。そこで各指標を(値−平均)÷標準偏差に直します。平均と標準偏差は訓練データだけから求めて検証データにも同じ値を使います。全データで標準化すると検証期間の情報が混ざり、ルックアヘッドバイアス(その時点で入手できなかった情報を使う誤り)と同じ種類の漏れになります。財務指標は期末日でなく、決算の開示日を基準に並べます。以降の係数は標準化後の値(指標が1標準偏差動いたときの営業利益率の変化、単位pp)です。
λの決め方:時間順の検証と「1 標準誤差」の規則
λは、訓練データで推定した係数が検証データでどれだけ当たるかで選びます。財務データは年度の並びに意味があるため、ランダムなk分割交差検証はそのまま使わず、20X1・20X2年度の80件を訓練、20X3年度の40件を検証に分けます(検証設計はAIを使うバックテストの設計も参照)。
λは0.1から1,000まで1・2・5刻みの13点を試しました。検証期間の平均二乗誤差(MSE。予測誤差の二乗の平均、単位pp²)が最小なのはλ=20で、MSEは0.946(RMSEは0.97pp)、残る指標は7個です。次に「1標準誤差内で最も単純なλ」を求めます。誤差が最小値から1標準誤差以内なら、より単純なモデルを選ぶ規則です6。最小MSEの標準誤差は0.220(検証40件の二乗誤差の標準偏差÷√40という簡便な近似。同じ企業の複数期が似れば過小になりやすい目安)なので、基準値は0.946+0.220で1.167です(丸める前の値で計算)。この基準以下で最も大きいλがλ=50で、MSEは1.101(RMSEは1.05pp)、残る指標は6個に減ります。λ=100ではMSEが1.604に悪化し、残る指標は2個です。
比較すると、OLSの検証MSEは1.254(RMSE 1.12pp)、全係数を0にして訓練平均で予測した場合は2.124(RMSE 1.46pp)、Ridgeの最良はλ=50で1.109(RMSE 1.05pp)でした。図表2のとおり、Lassoは係数を順にゼロへ落としながら誤差が下がり、λが大きすぎると全係数が0になって誤差が跳ね上がります。
注意点は2つです。第一に、最小MSEの0.946とOLSの1.254の差は約0.31で、標準誤差0.220と同程度のため、40件の検証では縮小が効いたと断定できません。第二に、λ=20とλ=50のどちらを採るかは判断です。以下は指標の少ないλ=50を使います。
係数の比較:OLS・Ridge・Lassoの結果
OLS全80件(図表3)は、効く5指標の係数がおおむね真の値に近い一方、真の係数が0の売上総利益率に+0.25、ICRに−0.20などが付きます。
| 指標 | 真の係数 | OLS 標本A(20X1・40件) | OLS 標本B(20X2・40件) | OLS 全80件 | Ridge λ=50 | Lasso λ=50 |
|---|---|---|---|---|---|---|
| ROA | 0.90 | 1.02 | 0.76 | 0.91 | 0.38 | 0.77 |
| 売上総利益率 | 0 | −0.05 | 0.75 | 0.25 | 0.23 | 0 |
| 販管費率 | 0 | −0.05 | 0.48 | 0.14 | −0.23 | 0 |
| 自己資本比率 | 0.50 | 0.28 | 0.92 | 0.53 | 0.21 | 0.19 |
| 有利子負債/EBITDA | 0 | 0.22 | −0.13 | −0.13 | −0.16 | −0.02 |
| ICR | 0 | 0.37 | −0.68 | −0.20 | 0.06 | 0 |
| 流動比率 | 0 | 0.14 | 0.07 | 0.12 | 0.05 | 0 |
| 総資産回転率 | 0 | 0.22 | 0.65 | 0.32 | 0.18 | 0 |
| 売上高成長率 | 0.60 | 0.61 | 0.60 | 0.57 | 0.38 | 0.33 |
| 研究開発費比率 | −0.30 | −0.38 | −0.69 | −0.54 | −0.31 | −0.16 |
| 設備投資比率 | 0 | −0.05 | −0.18 | −0.10 | −0.07 | 0 |
| 在庫回転日数 | −0.40 | −0.54 | −0.27 | −0.36 | −0.24 | −0.12 |
| 売上債権回転日数 | 0 | 0.18 | 0.15 | 0.16 | 0.04 | 0 |
| 配当性向 | 0 | −0.05 | 0.09 | −0.04 | −0.03 | 0 |
| 検証40件のMSE(pp²) | - | - | - | 1.254 | 1.109 | 1.101 |
Ridge(λ=50)は14指標すべてを残しつつROAを0.38へ縮め、売上総利益率(+0.23)と販管費率(−0.23)にも配分します。Lasso(λ=50)はROAを含む6指標だけが非ゼロで、効く5指標は全部残り、真の係数が0の有利子負債/EBITDAが−0.02で1つ混ざりました。残った係数は真の値より小さく(自己資本比率は0.19、真の値は+0.5)、これが縮小に伴う偏りです。
標本A・B別の推定(件数が半分なのでλも25に半減)では、Ridgeで符号が入れ替わったのはICRの1指標だけ(OLSは5指標)です。Lassoで残った指標は標本Aが4個、標本Bが5個で、両方に残ったROA・自己資本比率・売上高成長率の3指標は符号も一致しましたが、在庫回転日数や研究開発費比率のように片方だけに残る指標もあります。
残す指標の一覧と、選択の安定性
揺れへの耐性を見るため、訓練80件を復元抽出(同じ件を重複して選べる無作為抽出)して再推定する作業を200回繰り返し、λ=50で各指標が非ゼロになった回数(選択回数)を数えました(図表4。回数と判定基準は編集部の便宜的な設定)。
| 指標 | Lasso係数(pp) | 選択回数(200回中) | Ridge係数の符号 | 判定 | 理由 |
|---|---|---|---|---|---|
| ROA | 0.77 | 199回 | + | 採用 | 回数・符号とも安定 |
| 売上高成長率 | 0.33 | 196回 | + | 採用 | 相関が低く安定 |
| 研究開発費比率 | −0.16 | 167回 | − | 採用 | 選択167回。符号は一貫 |
| 在庫回転日数 | −0.12 | 150回 | − | 保留 | 符号は一貫。選択は150回 |
| 自己資本比率 | 0.19 | 136回 | + | 保留 | 安全性の束で残ったが136回 |
| 有利子負債/EBITDA | −0.02 | 106回 | − | 保留 | 束の中で入れ替わり得る |
| 売上総利益率 | 0 | 44回 | + | 除外 | ROA(相関0.86)に代表させる |
| 販管費率 | 0 | 30回 | − | 除外 | ROA(相関−0.89)に代表させる |
| 総資産回転率 | 0 | 24回 | + | 除外 | 選択24回。係数もゼロ |
| ICR | 0 | 3回 | + | 除外 | 選択3回。束の他指標に吸収 |
| 流動比率 | 0 | 2回 | + | 除外 | 選択2回 |
| 売上債権回転日数 | 0 | 1回 | + | 除外 | 選択1回 |
| 配当性向 | 0 | 1回 | − | 除外 | 選択1回 |
| 設備投資比率 | 0 | 0回 | − | 除外 | 選択0回 |
ROA(199回)、売上高成長率(196回)、研究開発費比率(167回)は選択回数が多く符号も一貫するため「採用」、在庫回転日数(150回)、自己資本比率(136回)、有利子負債/EBITDA(106回)は「保留」です。安全性の束では、ICRは3回にとどまり、自己資本比率と有利子負債/EBITDAが両方残ったのは200回中58回で、片方だけが残った回が126回ありました。束の中の相関が高いと、どれが残るかは標本次第で揺れます。束ごとに代表指標を決めるか、Ridgeや、両方の罰則を併せ持つElastic Netを使うのが実務的です。
分析メモの例
財務指標14個にLasso(λ=50、20X1・20X2年度で推定し20X3年度で検証)を適用し、6指標が残った。ROA・売上高成長率・研究開発費比率は200回のうち167回以上で選ばれ採用し、自己資本比率・在庫回転日数・有利子負債/EBITDAは106回〜150回にとどまるため保留とした。これらは予測への寄与で、因果的な効果ではない。係数は縮小推定の値で、p値は付していない。
限界と注意:因果・有意性・期間・規制
第一に、残った指標は予測に寄与しただけで、因果的に効くとは限りません。設例で効く指標が残ったのは、人が先にそう決めてデータを作ったからです(相関と因果の区別を参照)。第二に、縮小した係数にOLS流のp値や信頼区間はそのまま使えません。有意性を主張するなら、選択後の再推定やブートストラップという方法があるため、t検定とp値の読み方と合わせて確認してください。第三に、選択結果は期間や標本で変わります。業種や規模はダミー変数(該当すれば1、しなければ0とする変数)で調整し、外れ値は上下の一定割合で切り詰める(ウィンソライズ)ことを検討します。式と性質の詳細は、機械学習・統計学習の教科書(参考文献R3の第6章など)で確認できます。
金融機関が審査モデルに使う場合は、金融庁「モデル・リスク管理に関する原則」が関わります。原則はモデル・リスクを「モデルの誤り又は不適切な使用に基づく意思決定によって悪影響が生じるリスク」と定義し7、開発でのデータの質などの確保8と、使用開始後の継続モニタリング9を求めています。ただし対象は原則のⅡ(1)に定める金融機関で10、2021年11月公表の原文に基づく説明です。自社への適用や改訂の有無は2026年10月時点で個別に確認してください。全体像はモデルリスクの用語ページにあります。
実務チェックリスト
- 相関行列とVIFで、似た指標の束を先に特定したか
- 各指標の定義と単位を確認し、標準化の平均・標準偏差を訓練期間のデータだけから求めたか(標準化後の係数と元の単位の係数を混同していないか)
- 開示日を基準に訓練と検証を時間順に分け、ランダム分割を使っていないか
- 検証誤差が最小のλと1標準誤差内で最も単純なλの両方を示し、誤差の差が標準誤差の範囲内かを書いたか
- 選択回数で、残った指標が標本の揺れに耐えるか確認したか
- 残した指標を「予測に寄与」と書き、因果やp値・信頼区間を主張していないか
よくある質問(F AQ)
指標が14個しかなくても、変数選択に使ってよいですか。
似た指標の束があって係数が不安定なら使えます。ただし件数が少ないとλの選択も不安定なので、設例のように誤差の差が標準誤差と同程度なら
RidgeとLassoのどちらを使えばよいですか。
指標を減らして一覧を作りたいならLasso、全指標を残して係数だけ安定させたいならRidgeが向きます。両方残したいなら、Elastic Netも候補です。
まとめ
似た財務指標が束になっていると、OLSの係数は標本で入れ替わります。RidgeとLassoはλで係数を縮めて安定させ、Lassoは指標の選択も兼ねます。λは訓練データ基準・時間順で決め、最小誤差のλと1標準誤差内で最も単純なλの両方を示します。残った指標は予測への寄与であって因果ではなく、選択回数で安定性を確かめて書きます。
脚注
- Corporate Finance Institute「LASSO」の「What is LASSO?」の節。LASSOは回帰係数を縮小して一部を0にし、0でない係数を選んで使う方法で、λが縮小の強さを決め、λが0ならOLSになると説明されている(参考文献 R1。一般的な概念の参考であり、本記事の設例・数値・言い回しは独自)。James・Witten・Hastie・Tibshirani・Taylor『An Introduction to Statistical Learning with Applications in Python』6.2.1節・6.2.2節(pp.240–244)にも、Ridgeは「RSS+λ×係数の二乗和」、Lassoは「RSS+λ×係数の絶対値和」を最小化し、λ=0なら最小二乗推定と一致すること、Ridgeは(λが無限大でない限り)係数を厳密に0にはしないのに対し、Lassoはλが十分大きいと一部の係数を厳密に0にして変数選択を行うことが書かれている(参考文献 R3)。↩
- scikit-learn 公式ドキュメント「sklearn.linear_model.Lasso」。最小化する目的関数が「(1 / (2 * n_samples)) * ||y – Xw||^2_2 + alpha * ||w||_1」と記載されている。両辺に2×件数を掛けると「RSS+(2×件数×alpha)×係数の絶対値和」となるため、本記事のλ=2×件数×alpha(参考文献 R4)。↩
- 参考文献 R3 の6.2.1節「Why Does Ridge Regression Improve Over Least Squares?」(p.242)。Ridgeの利点は偏りと分散のトレードオフにあり、λを大きくすると分散が下がる一方で偏りが増えると説明されている(参考文献 R3)。↩
- Corporate Finance Institute「LASSO」の「LASSO Geometry」の節。Lassoの制約領域はひし形で角があり、Ridge回帰の制約領域は円で角がないと説明されている(参考文献 R1)。「Ridgeの係数は0になり得ない」という同ページの断定は採らず、本文では「通常は0にならない」とした。R3の6.2.2節(pp.246–247)も、円の制約では楕円との接点が通常は軸上に来ないのに対し、ひし形は各軸上に角があるため接点が軸上に来やすいと説明している(参考文献 R3)。↩
- 参考文献 R3 の6.2.1節(p.242)。最小二乗推定は説明変数の尺度を変えても予測が変わらないのに対し、Ridgeの推定値は説明変数の尺度に左右されるため、説明変数を標準化してから当てはめるのがよいとされている(参考文献 R3)。↩
- 参考文献 R3 の6.1.3節(p.240)。各モデルの推定テスト誤差の標準誤差を求め、誤差が最小点から1標準誤差以内にあるモデルのうち最も小さいモデルを選ぶ「one-standard-error rule」が説明されている(参考文献 R3)。↩
- 金融庁「モデル・リスク管理に関する原則」(令和3年11月)p.5「Ⅲ.定義」(b)。「「モデル・リスク」とは、モデルの誤り又は不適切な使用に基づく意思決定によって悪影響が生じるリスクをいう。」(参考文献 R2)↩
- 金融庁「モデル・リスク管理に関する原則」p.10 原則3「3.1. モデル開発」。モデルの理論的な適切性、データの質、モデルとの適合性など、目的に照らした適切性を確保する開発プロセスを整備すべきとされている(要約。参考文献 R2)。↩
- 金融庁「モデル・リスク管理に関する原則」p.11 原則5「5.1. 継続モニタリング」。使用開始後も、環境の変化等でモデルの性能が低下することが想定され、継続モニタリングはモデルの陳腐化を捉える役割を担うとされている(要約。参考文献 R2)。↩
- 金融庁「モデル・リスク管理に関する原則」p.3「Ⅱ.適用」(1)対象金融機関。本邦G-SIBs、本邦D-SIBs、およびFSBが選定したG-SIBs(本邦G-SIBsを除く)の本邦子会社で金融庁によるモデルの承認を受けている金融機関が対象とされ、今後必要に応じて対象を拡大し得るとも書かれている(要約。参考文献 R2)。↩
参考文献(2 026年10月確認)
- R1 Corporate Finance Institute「LASSO – Definition, Estimation, Uses and Geometry」(2020年4月21日掲載) corporatefinanceinstitute.com (LASSOの一般的な定義・λの役割・制約領域の形の概念の参考。脚注1・4の根拠。閲覧日:2026年10月19日)
- R2 金融庁
「モ デル・リスク管理に関する原則」(令 和3年11月12日公表) fsa.go.jp (参照箇所:p.3 Ⅱ(1)、p.5 Ⅲ(b)、p.10 原則3、p.11 原則5。脚注7〜10の根拠。閲覧日:2026年10月19日) - R3 Gareth James・Daniela Witten・Trevor Hastie・Robert Tibshirani・Jonathan Taylor『An Introduction to Statistical Learning with Applications in Python』(Springer、2023年7月第1刷。著者公式サイトで公開のPDF) statlearning.com (参照箇所:6.1.3節 p.240、6.2.1節 pp.240–242、6.2.2節 pp.244–247。脚注1・3・4・5・6の根拠。閲覧日:2026年10月19日)
- R4 scikit-learn「sklearn.linear_model.Lasso」(scikit-learn 1.9.1 ドキュメント) scikit-learn.org (参照箇所:冒頭の目的関数の説明。脚注2の根拠。閲覧日:2026年10月19日)
※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。設例は理解のための学習用の架空事例であり、実在の企業・案件とは関係ありません。