データクリーニングへようこそ!
アクチュアリー・モデリングの世界では、「完璧な」データが手に入ることは稀です。現実世界のデータは多くの場合、雑然としていたり、欠損があったり、あるいは単におかしいデータが混じっていたりします。この章では、破損データや欠損データの修復(Repairing Corrupt or Missing Data)に焦点を当てます。あなたは「データ探偵」になったつもりで取り組んでください。手がかりを見つけ、壊れている部分を修正し、モデルの信頼性を保つのがあなたの仕事です。最初は少し専門的で難しく感じるかもしれませんが、大丈夫です。このノートを読み終える頃には、どんなデータの問題にも対応できるツールキットが手に入っているはずです!
1. 問題の特定:何が「悪い」データなのか?
データを修正する前に、何が問題なのかを知る必要があります。通常、データの問題は以下の2つのカテゴリに分類されます。
1. 欠損データ(Missing Data): 本来値があるべき場所に空のセルがある状態(例:契約者の年齢が抜けている)。
2. 破損/論理的に誤ったデータ(Corrupt/Illogical Data): データは存在するが、明らかに間違っている状態(例:契約者の年齢が-5歳や250歳と記載されている)。
見つけ方:
これらのエラーを見つける優れた方法は、Excelの要約統計量(Summary Statistics)やデータフィルタを使うことです。年齢の「最大値(Maximum)」を見て999と表示されていれば、修正が必要なプレースホルダーを見つけたことになります!
クイック復習:よくある危険信号(Red Flags)
• 本来プラスであるべき場所にマイナスの値がある(保険料など)。
• 未来の日付(2050年の保険金請求日など)。
• カテゴリの誤り(性別の列に「男性」「女性」に混じって「ピザ」があるなど)。
• 極端な外れ値(あまりに大きすぎたり小さすぎたりして、平均値を歪めてしまう値)。
まとめ: まずは必ずデータの「プロファイリング」を行いましょう。見つけていない水漏れを直すことはできないのですから!
2. 3つの大きな問い
エラーを見つけたら、どう対処するかを決めなければなりません。以下の問いを自分に投げかけてみてください。
1. それは重要か?: 100万件のうち1件、ミドルネームが抜けているだけなら問題ないかもしれません。しかし、「保険金額」の列の10%が欠損していたら、それは大問題です!
2. 正しい値を探せるか?: 別のデータベースや原本の紙のファイルを確認できますか?
3. 修正すべきか、削除すべきか?: これが「修復 vs 削除」の議論です。
3. 修復の方法
データを修復すると決めた場合、標準的なアクチュアリーの手法は以下の通りです。
A. 削除(「最後の手段」)
レコードがあまりに破損しており、何を信じていいか分からない場合は、行全体を削除することもあります。
例: 生命保険のレコードで、年齢、性別、保険金額すべてが欠損している。これでは役に立ちません!
注意: 慎重に行ってください。削除しすぎるとバイアス(偏り)が生じる可能性があります(例:高齢者のデータばかりを削除すると、モデルは「全員が若年層である」と誤認してしまいます)。
B. 平均値/中央値による補完(Imputation)
これは、列の残りの値の平均値で空のセルを埋める方法です。
例え: グループで夕食会を企画していて、1人が予算を伝え忘れた場合、その人がグループの「平均」と同じくらい使うだろうと想定するようなものです。
C. 論理的なデフォルト値の利用
他の手がかりから値を推測できる場合があります。
例: 「喫煙状況」が空欄でも、契約商品が「非喫煙者優良割引型」であれば、ステータスを「非喫煙」に設定するのは論理的です。
D. 線形補間(Linear Interpolation)
数値の並びに欠落がある場合、その間を「橋渡し」できます。
時点1の値が10、時点3の値が20と分かっていれば、時点2は15だと仮定できます。
2点 \( (x_0, y_0) \) と \( (x_1, y_1) \) の間の単純な線形補間で、与えられた \( x \) に対する \( y \) を求める公式は以下の通りです:
\( y = y_0 + (x - x_0) \frac{y_1 - y_0}{x_1 - x_0} \)
豆知識: Interpolation(補間)という言葉は、ラテン語の inter(間に)と polare(滑らかにする/磨く)に由来します。まさに、隙間を滑らかにしているのです!
4. 変更の記録(監査証跡:Audit Trail)
CP2において、どのようにデータを修正したかは、いかにそれを説明できるかよりも重要ではないことが多いです。加えたすべての変更を記録しなければなりません。これが監査証跡(Audit Trail)です。
データ修復の「黄金律」:
1. 元のデータを決して上書きしない: 常に「生データ(Raw Data)」タブと「修正済みデータ(Cleaned Data)」タブを分けておきましょう。
2. 修復箇所をマークする: 「Repair_Flag」という新しい列を作りましょう。データを変更した場合は「1」、元のままであれば「0」を入力します。これにより、後でどのような影響があったかを追跡できます。
3. 選択の正当性を証明する: 単に「修正しました」と言うだけでなく、「サンプルサイズを減らさないために、欠損していた5名分の年齢を中央値の42歳で補完しました」と理由を述べましょう。
まとめ: モデルの質はドキュメントの質で決まります。同僚があなたの「修正」を正確に再現できなければ、監査証跡のテストには合格できません。
5. 避けるべきよくあるミス
• 「ゼロ」と「空欄」の区別を無視する: 空欄は「データなし」を意味し、ゼロは「特定の数値」です。正当な理由がない限り、これらを同じものとして扱ってはいけません!
• 壊れていないものを直そうとする: 「外れ値」は、珍しいだけで実際には正しいデータである場合があります。金額が大きいという理由だけで請求データを削除してはいけません。その請求データこそが、リスク分析において最も重要な部分かもしれません!
• 整合性をチェックしない: 年齢を25歳に修正したなら、「運転免許保持年数」が30年になっていないか確認してください!
6. 「M.E.N.D.」の覚え方
データエラーを見つけたら、M.E.N.D.を思い出してください:
M - Measure(測定): 実際にどれだけのデータが欠損・誤っているか?
E - Examine(調査): パターンはあるか?(例:女性の年齢だけが欠けていないか?など)
N - Note(記録): 手を加える前に、見つけたことを正確にドキュメントに残す。
D - Decide(決定): 修復方法(削除、補完、デフォルト値)を選び、その理由を説明する。
最後の重要なメッセージ
データを修復することの目的は、データを「完璧」にすることではなく、目的に適ったもの(fit for purpose)にすることです。データを修正するたびに、あなたは仮定を置いています。CP2におけるあなたのゴールは、妥当な仮定を置き、それを読み手に明確に伝えることです。あなたならきっとできます!