現実のデータには必ず「欠損値」がある。患者の体重が記録されていない、 アンケートの一部が未回答、センサーの故障で値が取れなかった——これらは日常茶飯事だ。
「欠損しているから、その行を捨てよう」と安易に削除することは、時に深刻な偏りを生む。 欠損データをどう正しく扱うか、そして第9章で登場した手法(加法モデル・決定木・MARS・HME)が 実際に動くまでどれくらい時間がかかるかを一緒に見ていこう。
「データの一部が欠けている」と一口に言っても、欠け方には種類がある。 この違いを見逃すと、分析結果が大きく歪む可能性がある。 まず3つのシナリオで、その違いを感じてみよう。

3つのシナリオを想像してほしい。
シナリオA — コイン投げで消す: データが集まった後、コインを投げて「表が出た行の体重を消す」。 この場合、欠損はランダムで、体重の実際の値とは無関係だ。
シナリオB — 女性は体重を答えにくい: 患者の性別(記録済み)に応じて、 女性は体重を答えない傾向がある。欠損が「性別」という他の観測値に依存しているが、 体重の実際の値には関係ない。
シナリオC — 血圧が高くて測定中断: 血圧が200mmHgを超えると機器が止まる。 欠損していること自体が「高い値だった」という情報を含んでいる。これが最も危険だ。
シナリオAは MCAR(Missing Completely At Random) と呼ばれ、最も扱いやすい。 シナリオBは MAR(Missing At Random) で、他の観測値には依存するが欠損値そのものには依存しない。 シナリオCはどちらでもなく、単純な補完をすると結果が偏る。
なぜ「なぜ欠けているか」が重要なのか? もしシナリオCで「血圧の欠損は平均値で補完しよう」とすると、 高血圧の患者たちに普通の血圧値を割り当ててしまう。分析結果が根本から間違う。
MAR(他の観測値に依存するが欠損値自体には依存しない)を数式で書くと:
MCAR(何にも依存しない完全ランダム欠損):
ここで $\mathbf{R}$ は欠損を示す行列($R_{ij}=1$ なら $x_{ij}$ が欠損)、$\mathbf{Z}_{\text{obs}}$ は観測されたデータ全体を表す。 MCARはMARの特殊ケースで、欠損確率が観測データにすら依存しない。
欠損パターンを理解したら、次は「どう対処するか」だ。 主な戦略は3つ。どれを選ぶかは「欠損の量」「欠損のメカニズム」「使う手法」で変わる。

欠損のある行をまるごと削除する。最もシンプルで、欠損がランダム(MARやMCAR)なら統計的に問題ない。 経験則として「全体の5%未満の欠損なら削除で十分」とよく言われる。欠損が多いと情報が失われすぎる。
一部の手法は欠損を自力で処理できる。
決定木(CART)が代表的だ。 決定木はデータを「特定の変数がある値以上か以下か」で分岐する。 ある変数が欠損していたとき、決定木は「代わりに最も似た役割を果たせる別の変数」で代替分岐する。 これを 代理分割(surrogate splits)と呼ぶ。 本来の分岐ができなくても、「隣の変数で代替する」ことでデータを捨てずに済む。
加法モデル(複数の平滑関数の和でデータを近似する手法)では、 バックフィッティングという繰り返し計算の中で欠損変数のターンを飛ばし、 フィッティング値をゼロに設定するという形で対応する。
学習の前に欠損値を「埋めて」しまう方法。
注意: どんな補完をしても「埋めた値は仮定だ」という不確実性が加わる。 多重補完はその不確実性を明示的に扱う点で優れている。
カテゴリカル変数(性別、職業など離散的なカテゴリを取る変数)では、 「欠損」を新たなカテゴリとして追加するアプローチもある。 欠損カテゴリが予測に貢献するなら、欠損パターン自体が情報を持つことになる。
「第9章の手法はどれでも使える」としたとき、データが大きくなると計算時間が問題になる。 ここでは、第9章に登場した4つの手法がどれくらい「重い」かを比べる。
手法の詳細を知らなくても大丈夫。「傾きが急な曲線ほど、データが増えると急激に遅くなる」という感覚で見てほしい。

$N$ を観測数(行数)、$p$ を変数数(列数)とする。
データを変数の数だけ別々に当てはめ、それを足し合わせて全体のモデルを作る。 この繰り返し計算を「バックフィッティング」と呼び、$m$ 回繰り返す。
実用的には反復回数 $m$ は通常10〜20回で十分。 変数間の相関が高いほど少ない反復で収束するため、実際はさらに速い。
データを「ある変数がある値以上か以下か」で順次分岐させて予測する。 最初にデータをソートするのが $pN\log N$、 その後の分割探索が通常 $pN\log N$ で済む (端の分割では最悪 $N^2p$ になる)。 全体的に計算は軽く、実用的な速さがある。
データの局所的なパターンに合わせた「折れ線の組み合わせ」でモデルを作る手法。 モデルに $M$ 個の基底関数(折れ線のピース)を追加していくとき、$M$ 項のモデル全体では:
$M$ が $N$ に近づくほど急激に重くなる。 大規模データでは $M$ を小さく抑える必要がある。 注目すべきは「$M^3$」という項——$M$ が2倍になると計算量が8倍になる。
「複数の専門家モデルが担当領域ごとに予測し、その重み付き平均を出力する」という構造の手法。EMアルゴリズム(期待値と最大化を繰り返す最適化手法)を使うが、 大規模なモデルでは収束まで非常に時間がかかる。 EMアルゴリズムの各ステップで $NF^2$($F$ はモデルパラメータ数)の計算が必要だ。
結論として: 加法モデルとCARTが速く、MARSは中程度、HMEは重い。
ここまでの内容を実践的な判断基準にまとめよう。 2軸のマトリクスで考えると見通しがよくなる。

| データ規模 | 目安 | 推奨手法 |
|---|---|---|
| 小規模 | $N < 1000$ | どの手法でも問題なし |
| 中規模 | $N \sim 10000$ | 加法モデル・CARTが快適 |
| 大規模 | $N > 100000$ | MARSは項数を制限、HMEは要注意 |
バックフィッティングの反復回数 $m$ は通常10〜20回で収束する。 変数間の相関が高いほど少ない反復で済む。
欠損データの処理は「分析の前工程」として見落とされがちだが、 ここで間違えると後の分析がすべて歪む。欠損メカニズムを考えることが出発点だ。
第9章で見てきた各手法も、それぞれ「速さ」「表現力」「欠損への耐性」において得意・不得意がある。 どれが最良かは問題次第——この柔軟な視点こそが、統計的学習を実践する上で最も重要なスタンスだ。