「検証用に取っておいたデータは、絶対に覗かない」。この検証で最初に決めたことのひとつです。運用規程にも書きました。ところがその規程どおりに運用すると、毎年かならず覗いてしまう設計になっていました。ルール違反ではありません。ルールを守った結果です。
発端は、たった一言の疑問だった
ある日、こう聞かれました。
この指数は、未来の結果から計算されていませんか。
指数の中身を説明していたときの、素朴な質問でした。実際に確かめてみると、計算式そのものは問題ありませんでした。使っているのはそのレース1つ分の、締切前の情報だけです。
しかし、その計算式には調整用のパラメータが2つ入っていました。そしてそのパラメータは、「実際に3着以内に来たかどうか」に合わせて推定された値でした。
つまり、式は未来を見ていないけれど、式の形を決めるつまみのほうが、結果を見て回されていたわけです。
「取っておいた期間」の話
この検証では、データの期間を2つに分けています。
- 探索期:いくらでも試してよい期間
- 検証期:最後に1回だけ使う期間(それまで絶対に見ない)
後者は、有望に見えた結論が本物かどうかを、最後に一度だけ確かめるために取ってあります。一度使ったら二度と使えないので、この検証では最も慎重に扱ってきた資源です。
さて、そのパラメータは、いつのデータで推定されていたか。
自分たちの運用規程を開いたら、最初のページに書いてありました。
パラメータ 推定に使ったデータ:直近3年
そして「直近3年」を実際の日付に直すと、取っておいたはずの期間が丸ごと入っていました。
探すまでもありませんでした。自分たちで書いた文書の、いちばん目立つ場所に書いてありました。
規程には、ちゃんと歯止めも書いてあった
ここが今回いちばん興味深いところです。同じ規程には、こうも書いてありました。
★更新に使うデータ:「その時点までに確定しているレース」のみ。未来を覗かない。
歯止めは、ちゃんと書かれていたのです。 それでも漏れました。理由は読み返してすぐ分かりました。
この一文は「カレンダー上の未来」しか見ていません。
取っておいた期間は、カレンダー上は過去です。しかし検証のために取ってある未来です。
規程は、この2種類の未来を区別していませんでした。
だから、規程を守れば守るほど漏れる。毎年「直近3年で更新しなさい」に従うたびに、取っておいた期間を1年ぶんずつ食べていく設計だったわけです。
どれくらい影響したのか
「漏れていた」と分かっても、どれくらい効いていたかは別の話です。そこで、そのパラメータを調整なしの素の値に戻して、全部測り直しました。
結果は、こうです。
- 主要な数字は生き残りました。 大きくは崩れませんでした
- ただし効果の3分の1ほどは、調整によって作られていました
- つまり「全部が幻」でも「無傷」でもなく、その中間でした
これは正直、ほっとしました。しかし同時に、「思ったより小さかった」で終わらせてはいけない部分でもあります。大きさの議論と、事実の記録は別です。小さかったから無かったことにする、をやると次に同じことが起きます。
差分が本当にパラメータのせいか、を確かめる
もうひとつ、自分で足した検査があります。
「調整を外したら数字が変わった」だけでは、その変化がパラメータのせいなのか、作業中に別のところを壊したのかが分かりません。
そこで、そのパラメータを一切使わない指標を11本用意して、同時に測りました。
パラメータを使わない11本 …… 小数第1位まで、1本も動かなかった
パラメータを使う6本 …… 動いた
「関係あるものだけが動いた」という形になりました。差し替えが効いていなければ全部動かないし、作業中に壊していれば関係ないものまで動きます。どちらでもない、という確認です。
面白かったのは、動いた6本のうち1本は、調整を外したら逆に良くなったことです。調整は一部の効果を隠してもいたわけで、影響は一方向ではありませんでした。
修正したのは「値」ではなく「規程」
ここが今回いちばん大事な判断でした。
最初、依頼されていたのは「古いパラメータも同じ問題を持っていたか、日付を確かめてほしい」でした。しかし記録を探しても、その日付を確定できる資料は存在しませんでした(規程は「更新のたびに監査記録を残す」と定めていましたが、一度も書かれていませんでした)。
そこで、問いのほうを変えました。
古い値が汚染されていたかどうかの問題ではありません。
規程どおりに運用すると、毎年かならず漏れます。
日付を1つ確定させても、来年また同じことが起きます。 直すべきは値ではなく規程のほうでした。
修正は3点です。
- 更新規則に「ただし取り置き期間を除く」を明記した
- 「『未来』は2種類ある」という節を新設し、カレンダー上の未来と、検証のために取ってある未来を区別した
- 「期間が規定より短くなっても構わない。短い推定期間より、漏れたパラメータのほうが悪い」と書いた
そして、監査記録が一度も書かれていなかった事実と、そのせいで過去の日付が確定できなくなったこと自体を、規程の中に実例として残しました。
ついでに分かった、もうひとつの漏れ
同じ調査で、閾値のほうも全期間から計算されていたことが分かりました。「上位◯%」という基準を、分析対象の全期間を見てから決めていたわけです。当然ながら、初日の時点でその値は知りようがありません。
こちらは後日、別途測り直しました。結論は「先読みは実在するが、結果はほとんど動かない」でした。理由も分かっていて、年ごとの基準値が数%しか動かないため、先読みで得られる情報がそもそも無かったのです。
漏れていた/漏れていなかった、と、影響が大きかった/小さかった、は独立です。今回は「漏れていたが、影響は小さかった」でした。これを最初から「小さいだろう」で済ませていたら、確かめる機会はありませんでした。
まとめ
- ルールを守っていても漏れることがある。 今回はルール違反ではなく、ルールの設計不良だった
- 「未来を見ない」は、カレンダー上の未来しか意味しないことがある。 検証のために取り置いた期間は、日付としては過去でも、扱いとしては未来
- 歯止めが書いてあることと、歯止めが効くことは別
- 漏れの有無と、影響の大小は別々に確かめる。 小さかったから記録しない、をやると次に同じことが起きる
- 「値を直す」か「規程を直す」かは、意識して選ぶ。 値を直しても、規程が同じなら来年また起きる
- やると決めた記録は、実際に書く。 「更新のたびに記録を残す」と定めていたのに一度も書かれておらず、そのせいで過去を再構成できなくなった
次回は、この検証で最も驚いた測定について書く予定です。ある2つの買い方が「当たる・当たらない」の条件が完全に一致することを実測で確認し、それでも価格が大きく違ったという話です。
決まりどおりに食べて、決まりに腹を壊すこともある。


