地味地味フォリオ

スコアは効いていた、増築案は不要だった — 親子上場スクリーナーの検証記録

10分で読めます

※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.1561.07
PBR > 1.2 の割合0%37%

症例群の37%は、対照群が構造的に存在できない領域にいた。その37%はペアワイズ比較で自動的に全勝するため、AUCは実態と無関係に押し上がる。

症例群にも同じフィルタ条件を適用して対称に比較し直すと:

指標非対称(誤)対称(正)
PBR0.7180.583
ROE0.6580.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.6010.682(最強)
業種関連性0.6450.645
市場区分0.6450.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回の「消えた改善」は全て同じ構造だった。

見えたもの正体
1ROE AUC 0.659対照群のPBRフィルタによる非対称比較
2新軸の検討そもそも既存スコアが未検証だった
3配点最適化 +0.022過適合(交差検証で -0.003)
4時価総額軸が最弱データ欠損が0点扱いされていた

いずれもデータの作られ方に原因があり、分析手法の問題ではなかった。比較する2つの群が同じ条件で抽出されているか、欠損がどう扱われているか、測定精度が両群で揃っているか——ここを確認しないまま出した数字が、4回とも「もっともらしい改善」に見えた。

冒頭の増配検証は、1万サンプル・5年連続の一貫性という強い証拠が揃った成功例だった。今回はその逆で、何も変えないという結論に終わった。

しかし何も変えないことが正しいと確認できたのは、結果としては悪くないと思っている。思いつきの改良を4回はねのけた設計は、少なくともその程度には妥当だったということになる。

検証は続く

親子上場コホート85件は凍結済みで、今後実際にイベントが発生するたびに更新される。今回ぶつかった制約——測定誤差、打ち切り、30%truncation——は、フォワード検証では全て回避できる。対照群の「予備軍」が実際に症例へ移る様子を直接観測できるからである。

年数件のペースで、2〜3年後には統計が語り始める。そのときに持株比率軸が生きるか、あるいは現行のまま十分なのか、答えが出る。

それまでは判断を保留する。

シェア: X Bluesky はてブ

関連記事