※Claude Sonnet 5で作成した記事です。
v2.3スコアの増配予測力を過去5年・1万サンプルで検証した記事では、仮説を支持する綺麗な結果が出た。今回はその対になる、もっともらしい改善案が次々に消えていった記録である。
対象は地味地味フォリオのもう一つのスコア、親子上場スクリーナー。上場している子会社を親会社が完全子会社化(TOB等)する可能性を評価する仕組みで、adminページで運用している。
結論から書くと、既存の設計は妥当で、検討した改善案は全て不要だった。ただしそこに至るまでに、4回「改善が見えて、精査したら消える」を繰り返した。その過程の方が記録する価値があると思う。
出発点: 暗黙の仮説が実データと逆行していた
スコアは4軸で構成される。
- 親会社の持株比率(高いほど加点、最大15点)
- 子会社の時価総額(小さいほど加点、最大8点)
- 業種関連性(親子で近いほど加点、最大5点)
- 上場市場区分(スタンダードを加点、最大2点)
この設計の背景には、明示的には書いていなかったが「安く放置されている小型子会社ほど親にTOBされやすい」という想定があった。低PBRの子会社を親が非公開化して市場評価とのギャップを取り込む——直感的で経済合理性のある物語である。
検証のため、過去5年(2021年8月〜2026年7月)の親子上場解消事例131件の台帳を作り、実際にTOBされた症例群と、現在も親子上場が続いている対照群を比較した。
最初に出た結果は想定を否定するものだった。
- 症例群(実際にTOBされた)のPBR中央値: 1.10
- 対照群(現役ペア)のPBR中央値: 0.82
症例群の方がPBRが高い。 「安い子会社が狙われる」は、少なくとも過去5年の実例では成立していなかった。
1回目: ROE軸への置換案が消えた
PBR = ROE × PER と分解すると、PBR比1.34倍のほぼ全てがROE比1.47倍で説明でき、PER比は0.84倍と逆方向だった。つまり症例群は「割高で買われた」のではなく「収益力が高いから結果的にPBRも高い」。
「親が完全子会社化するのは稼ぐ子会社であって、安く放置された子会社ではない」——経済的にも筋が通る。ROEのAUCは0.659で、5指標中2位。PBR軸をROE軸に置き換える根拠として十分に見えた。
ここで対照群のサンプル数が22件しかないことが引っかかった。サンプルを最大化して再計算しても、ROEは0.658とほぼ変わらず、シグナルは維持された。
問題は別のところにあった。対照群の抽出方法である。
対照群はスクリーナーのフィルタを通過した銘柄から取っていた。そのフィルタには pbr_max: 1.2 という条件がある。つまり対照群はPBR1.2以下しか存在し得ない。実際に確認すると:
| 対照群 | 症例群 | |
|---|---|---|
| PBR最大値 | 1.15 | 61.07 |
| PBR > 1.2 の割合 | 0% | 37% |
症例群の37%は、対照群が構造的に存在できない領域にいた。その37%はペアワイズ比較で自動的に全勝するため、AUCは実態と無関係に押し上がる。
症例群にも同じフィルタ条件を適用して対称に比較し直すと:
| 指標 | 非対称(誤) | 対称(正) |
|---|---|---|
| PBR | 0.718 | 0.583 |
| ROE | 0.658 | 0.574 |
ROE軸採用の根拠は、比較条件の非対称性が作り出した見かけだった。
2回目: そもそもスコア自体を検証していなかった
ここで根本的な問題に気づいた。ここまでの分析は全て「どの新しい軸を足すか」を調べていて、その前提である「今のスコアが効いているか」を一度も検証していなかった。
順序が逆だった。土台を確認せずに増改築の議論をしていたことになる。
そこで既存スコアそのものをテストした。持株比率軸は症例群で15/99件しか履歴を再現できないため除外し、残り3軸(15点満点)で比較した。対照群は今度こそフィルタを通さず、設定ファイルの同一ルーブリックで85件全件を再計算した。
症例群(実際にTOBされた) 99件 スコア中央値 9.0
対照群(TOBされていない) 85件 スコア中央値 7.0
AUC = 0.667
時価総額データが両群で揃った銘柄に限定すると AUC = 0.73。
スクリーナーは機能していた。 そして重要なのは、この0.667〜0.73が、検討していたどの新軸候補(PBR 0.583、ROE 0.574)よりも高いことだった。置き換える必要のないものを置き換えようとしていた。
3回目: 配点の見直しも効果がなかった
軸別のAUCを見ると、配点最大の時価総額軸(8点)が0.601で、配点2点の業種・市場区分(0.645)より低く見えた。「配点の配分を見直せばAUCを上げられそうだ」と考えた。
しかしこれもデータの読み間違いだった。2022年の東証再編前の症例は時価総額データの取得率が16%しかなく(J-Quantsのデータ提供下限の影響)、欠損が0点=大企業扱いされていた。欠損を除くと:
| 軸 | 誤った値 | 正しい値 |
|---|---|---|
| 時価総額 | 0.601 | 0.682(最強) |
| 業種関連性 | 0.645 | 0.645 |
| 市場区分 | 0.645 | 0.636 |
配点最大の軸が実際に最強だった。
それでも配点の振れ幅は8:2:2(=4:1:1)に対し識別力比は約1.26:1:1なので、時価総額が過大評価されている可能性は残る。そこで配点を最適化し、5分割交差検証×20反復で「配点を最適化する手続きそのもの」を評価した。
| AUC | |
|---|---|
| 現行配点・全データ | 0.730 |
| 最適配点・全データ | 0.752(+0.022) |
一見改善に見える。しかし交差検証、つまり学習側だけで配点を決めて未知データで評価すると:
| AUC | |
|---|---|
| 現行配点 | 0.733 |
| 配点最適化後 | 0.731 |
最適化が勝ったのは100分割中48回、ほぼコイン投げだった。全データでの+0.022は完全に過適合である。
全データでの最適重みを15点満点に換算すると「時価総額8.2 / 業種4.5 / 市場区分2.3」で、現行の「8 / 2 / 2」とほぼ変わらない。現行配点は、このデータで判断できる範囲ですでに最適に近かった。
4回目: 検証を断念した
最後に残ったのが、配点15点=スコアの半分を占める持株比率軸である。これだけが完全に未検証だった。
判明していた15件で予備的に見ると、対称条件(両群とも30%以上)でのAUCは0.538。ほぼ識別力なしに見えた。さらに比率軸を加えるとスコア全体の識別力が下がる結果も出た(3軸0.669 → 4軸0.605、悪化確率88%)。
ただしn=14では95%信頼区間が [0.366, 0.709] と広く、仮説を棄却できる水準ではない。加えて、この比較には効果を過小評価する要因が3つ重なっている。
対照群は「TOBされない」ではなく「まだTOBされていない」。 仮説が正しいなら、高比率の対照群ほど将来の症例である確率が高い。それらが対照群に居座ることで差が薄まる。
過去5年の解消が対照群を枯渇させている。 高比率ペアが優先的にTOBされていれば、現在残っているのはその生き残りである。両群の分布が似通うのは、むしろ仮説が正しいことの帰結ですらある。
30%未満が構造的に存在しない。 症例台帳の採録条件が「30%以上」のため、検証できるのは30〜75%の範囲内の高低だけ。仮説が最も効きそうな大きなコントラストが、データ設計上まるごと欠けている。
そこで残り84件の持株比率を精密に調査することにした。ChatGPTに開示書類ベースで調べさせ、正解が判明している15件で精度検証したところ15/15正答(13件は完全一致)。この精度なら本調査を任せられる。
ところが調査を始めてすぐ、別の問題が判明した。比較相手である対照群のデータが概算値だった。
| 症例群(開示書類ベース) | 対照群(既存データ) | |
|---|---|---|
| 出典の記録 | あり | なし |
| 基準(議決権/株式数) | 明記 | なし |
| 整数値(x.0)の割合 | 0/19件 | 72/87件(83%) |
「ちょうど50.0%」が6件並んでいた。実際の保有割合が50.00%ぴったりになる確率は低く、「過半数」という記述を50.0と入力した可能性が高い。
配点表の段は30/40/50/60/70%で変わるため、対照群85件中45件(53%)が閾値±2pt以内に位置していた。真値が49.8%なら10点、50.3%なら10点のまま——この1件で3点動く。それが45件分ある。
症例群だけ精密化しても、比較相手が粗いままでは結論は出ない。対照群85件も同じ精度で調べ直す必要があり、合計157件の調査になる。ここで検証の断念を決めた。
得られたもの
改善案は全て消えたが、確定した事実は残った。
スクリーナーの3軸は機能している(AUC 0.667〜0.73)。 フィルタバイアスを完全に除去した上での数字である。
配点は現状ですでに最適に近い。 交差検証で改善が確認できなかった。
新軸候補は既存スコアより弱い。 対称条件でPBR 0.583、ROE 0.574。当初検討していた置換は不要だった。
PBR逆行という発見。 「安い子会社が狙われる」という暗黙の想定は実データと逆行していた。今後スコアを見直す際の参照点になる。
持株比率軸は検証不能として記録。 予備的には「加えると識別力が下がる可能性」が観測されたが、確定していない。なぜ検証できなかったかを含めて残しておく。
4回とも同じ形をしていた
振り返ると、4回の「消えた改善」は全て同じ構造だった。
| 回 | 見えたもの | 正体 |
|---|---|---|
| 1 | ROE AUC 0.659 | 対照群のPBRフィルタによる非対称比較 |
| 2 | 新軸の検討 | そもそも既存スコアが未検証だった |
| 3 | 配点最適化 +0.022 | 過適合(交差検証で -0.003) |
| 4 | 時価総額軸が最弱 | データ欠損が0点扱いされていた |
いずれもデータの作られ方に原因があり、分析手法の問題ではなかった。比較する2つの群が同じ条件で抽出されているか、欠損がどう扱われているか、測定精度が両群で揃っているか——ここを確認しないまま出した数字が、4回とも「もっともらしい改善」に見えた。
冒頭の増配検証は、1万サンプル・5年連続の一貫性という強い証拠が揃った成功例だった。今回はその逆で、何も変えないという結論に終わった。
しかし何も変えないことが正しいと確認できたのは、結果としては悪くないと思っている。思いつきの改良を4回はねのけた設計は、少なくともその程度には妥当だったということになる。
検証は続く
親子上場コホート85件は凍結済みで、今後実際にイベントが発生するたびに更新される。今回ぶつかった制約——測定誤差、打ち切り、30%truncation——は、フォワード検証では全て回避できる。対照群の「予備軍」が実際に症例へ移る様子を直接観測できるからである。
年数件のペースで、2〜3年後には統計が語り始める。そのときに持株比率軸が生きるか、あるいは現行のまま十分なのか、答えが出る。
それまでは判断を保留する。