不完全データの世界へようこそ!

皆さん、こんにちは!Exam FAMの学習を進める中で、完璧なデータセットに対する最尤推定法(MLE:Maximum Likelihood Estimation)はマスターされたことでしょう。しかし、現実の保険の世界では、完璧なデータに出会うことは滅多にありません。「少なくとも〇〇円以上の損害」としか分からない場合や、免責金額(デダクティブル)以下の損害は見ることさえできない場合があるからです。

この章では、右側打ち切り(Censored)左側切断(Truncated)されたデータを扱うために、MLEの「レシピ」をどのように調整するかを学びます。これらの用語を難しく感じるかもしれませんが、大丈夫です。試験問題を自信を持って解けるよう、シンプルな例えを使って丁寧に解説していきます!

1. 用語の理解:打ち切り(Censoring)と切断(Truncation)

数学的な計算に入る前に、データに何が起きているのかを理解しましょう。データの種類さえ見極められれば、公式は簡単に当てはめられます!

打ち切り(Censoring):「存在は知っているが、正確な大きさは分からない」

保険の世界で最も一般的なのは右側打ち切り(Right-Censoring)です。これは通常、保険金支払限度額(Policy Limit)によって発生します。

例:保険の限度額が10,000ドルだとします。大火災が発生し、50,000ドルの損害が出ました。保険会社はこの損害を10,000ドルのクレームとして記録します。私たちは、実際の損害額が少なくとも10,000ドル以上であることは分かりますが、最終的な正確な額は分かりません。

切断(Truncation):「十分な大きさがない場合、存在すら認識できない」

保険の世界では、免責金額(Deductible)があるために左側切断(Left-Truncation)がよく起こります。

例:500ドルの免責金額がある保険があるとします。契約者に300ドルの損害が発生しても、彼らはクレームを請求しません。保険会社は、その損害について全く知る由もありません。私たちのデータには、500ドルの閾値を「越えた」人だけが含まれます。私たちは、分布の全体像のうち、下位の部分が完全に欠落している状態なのです。

クイック復習ボックス:

  • 打ち切り(Censored):データポイントはあるが、その値が制限されている(キャップがかかっている)。
  • 切断(Truncated):データポイントがある一定の値を下回る(または上回る)ため、データそのものが存在していない。

2. 尤度関数の「構成要素」

MLEを求めるには、尤度関数(Likelihood Function) \(L(\theta)\) を組み立てる必要があります。これは「確率の積」のようなものだと考えてください。データの一つひとつが、全体の確率に寄与していきます。

ケースA:正確な観測値

正確な値 \(x\) が分かっている場合、その寄与分は確率密度関数(pdf)になります:
寄与分 = \(f(x)\)

ケースB:\(u\) での右側打ち切り

値が 少なくとも \(u\) であることしか分からない場合、生存関数(Survival function)を使います。なぜなら、生存関数 \(S(u)\) は \(u\) より大きくなる確率を表しているからです。
寄与分 = \(S(u) = 1 - F(u)\)

ケースC:\(d\) での左側切断

これが一番の難所です。データは「\(d\) より大きい」という条件下で観測されているため、条件付き確率を使う必要があります。通常の寄与分を \(S(d)\) で割るのです。
寄与分 = \(\frac{\text{f(x) or S(u)}}{S(d)}\)

3. まとめてみよう:一般的な尤度公式

正確な値(\(x_i\))と、打ち切られた値(\(u_j\))が混在し、すべてがある切断点(\(d\))の制約を受けている場合、尤度関数は以下のようになります:

\(L(\theta) = \prod_{i=1}^{n} \frac{f(x_i)}{S(d)} \times \prod_{j=1}^{m} \frac{S(u_j)}{S(d)}\)

ちょっと待って!パニックにならないでください! 切断がない場合、\(d = 0\) となり、\(S(0) = 1\) なので分母は消えてなくなります。ほとんどの試験問題では、これらの要素のうち1つか2つだけが登場します。

豆知識:
学生が最も間違いやすいのは、免責金額があるときに \(S(d)\) で割るのを忘れることです。常に自分に問いかけてみてください:「このクレームが見えなくなるような閾値が存在するだろうか?」もしイエスなら、それは切断です!

4. MLE問題を解くためのステップ・バイ・ステップ

計算に迷わないよう、以下の手順に従いましょう:

ステップ 1: 要素を特定する。
正確な値(\(x\))、打ち切られた値(\(u\))、切断点(\(d\))を書き出します。

ステップ 2: 尤度関数 \(L(\theta)\) を書く。
特定の分布(指数分布やパレート分布など)に合わせて、\(f(x)\) と \(S(x)\) の公式に値を代入します。

ステップ 3: 自然対数をとって対数尤度 \(l(\theta)\) にする。
積よりも和で扱う方がずっと簡単です。対数の性質を思い出しましょう:\(\ln(a \times b) = \ln(a) + \ln(b)\) かつ \(\ln(a/b) = \ln(a) - \ln(b)\) です。

ステップ 4: \(\theta\) で微分する。
微分した式をゼロに置きます:\(\frac{d}{d\theta} l(\theta) = 0\)。

ステップ 5: \(\theta\) について解く。
これが最尤推定量です!

5. 現実世界の例え:「マッチングアプリ」モデル

平均身長(\(\theta\))を調べるために、マッチングアプリの利用者の身長を研究していると想像してください:

  • 正確なデータ: 身長を正確に「178cm」と登録している人。(\(f(x)\) を使用)
  • 打ち切りデータ: 「180cm以上」というチェックボックスにチェックを入れている人。181cmなのか190cmなのかは分かりません。(\(S(180)\) を使用)
  • 切断データ: アプリには「身長150cm未満は登録不可」というフィルターがある。データセットに彼らは全く現れません!(全員を \(S(150)\) で割る)

6. よくある落とし穴

1. \(f(x)\) と \(F(x)\) を混同する: 正確な点は密度関数(\(f\))を使い、打ち切られた点(範囲)は生存関数(\(S = 1-F\))を使うことを忘れないでください。

2. 「n」を忘れる: \(\prod S(d)\) のような積の対数をとると、それは \(n \ln S(d)\) になります。\(n\) を書き忘れないように!

3. 指数分布のショートカット: パラメータ \(\theta\)(平均)を持つ指数分布の場合、MLEは単に(免責金額を超えた超過損害の平均)になることがよくあります。時間を節約するために、こうしたパターンを探してみましょう!

要点のまとめ

1. 正確な値は、尤度に \(f(x)\) を寄与させる。
2. 右側打ち切り値(保険限度額など)は、\(S(u)\) を寄与させる。
3. 左側切断値(免責金額など)は、\(S(d)\) で割る必要がある。
4. 目標: 総積の対数を最大化して、最適なパラメータ \(\theta\) を見つけること。

ここまでよく頑張りました!不完全データを用いたMLEはFAMの中でも「骨のある」トピックですが、\(f(x)\)、\(S(u)\)、\(S(d)\) のパターンさえ見抜ければ、パズルを組み立てるような簡単なゲームになります。練習を続けていきましょう!