AI・機械学習

SHAP Dependence Plotとは?読み方・交互作用・Summary Plotとの違いをわかりやすく解説

AI・機械学習

この記事では、以下の画像の左下に位置する「Dependence Plot(依存関係プロット)」について解説します。

これまでSHAP値について、以下の3つの記事でお伝えしてきました。

  • SHAP値とは何か、偏回帰係数との違い
  • Waterfall PlotとForce Plot:個々のレコード・症例に注目(画像上段)
  • Summary Plot(Beeswarm):モデル全体に注目(画像中段)

今回のDependence Plotは、個別の変数(特徴量)に注目し、予測値に与える影響をより詳しく局所的に見るためのプロットです。

この記事では、Dependence Plotの基本的な読み方はもちろん、機械学習の真骨頂である「交互作用」の捉え方についても解説します。従来の統計モデル(重回帰分析など)との比較も交えながら、Summary Plotとの関連やSHAPの機能の中でも一歩踏み込んだshap_interaction_values(SHAP交互作用値)まで見ていきましょう。

1. 「Dependence Plot(依存プロット)」とは?

これまでの記事では、モデル全体を俯瞰して「どの特徴量が重要か」を捉える方法をお伝えしてきました 。

実際にデータを分析していると、次のような一歩踏み込んだ疑問が湧いてくるはずです 。

  • 「年齢が上がると、具体的に何歳を境にして予測値(FIMや退院先など)に悪影響が出始めるのか?」
  • 「MMSE(認知機能)の低下は、どのレベルまで落ちるとガクッと予測値が下がるのか?」
  • 「どのあたりから交互作用の影響が出ているか?」

このように、「気になる特定の変数(特徴量)の『実際の値』と『SHAP値(予測への影響度)』の具体的な関係性を、1対1で視覚化したグラフ」が、今回解説するDependence Plot(依存プロット)です 。

Dependence Plotの構成要素は、次の3つです。

要素意味
横軸対象の特徴量の実際の値(例:年齢)
縦軸その特徴量のSHAP値(予測への寄与度)
1つの点1人の患者(1サンプル)
変数の値(交互作用を持つ変数の値を示すことが多い)

データの分布からアウトカムに与える影響の関係性が読み取れます。

まずは、データ点がどのような曲線を描いているかに注目します。

注目している変数がアウトカムに与える影響が、比例関係であればプロットは直線上になります。一方、データ点が描く線が途中で急になったり折れた利していれば、そこで変数とアウトカムの関係が変化したと解釈できます。

上の例では70歳を境にプロットの傾きが急になっており、70歳を超えると予測値に対する加齢の影響が強まる、と解釈できます。

次は交互作用の読み取りです。

先ほどのグラフをもう一度見てみましょう。

Dependence Plotでは、曲線の形だけではなく、同じ年齢(横軸)の位置で点がどれくらい縦方向に散らばっているかにも注目します。

もし年齢だけでSHAP値が決まるのであれば、同じ年齢のデータ点はほぼ同じ高さに並びます。しかし実際には、同じ年齢でも点が上下に散らばることがあります。これは、年齢以外の特徴量によって年齢の影響が変化していることを示しており、交互作用が存在する可能性を示すサインです。

例えば、この図では70歳を超えたあたりから縦方向のばらつきが大きくなっています。つまり、高齢になるほど「年齢が予測へ与える影響」が、他の特徴量によって変化していることが分かります。

そこで点の色を見ると、このグラフでは入院時FIMで色分けされています。90歳前後では、上側には赤い点(FIMが高い患者)、下側には青い点(FIMが低い患者)が多く分布しています。

つまり、同じ90歳前後であっても、入院時FIMが低い患者では年齢のSHAP値がより大きくマイナスになり、FIMが高い患者ではマイナスの影響が比較的小さいことが分かります。

このように、色と縦方向のばらつきが対応している場合、その特徴量との交互作用が存在する可能性が高いと考えられます。

注意点:横軸方向にサンプルが少ない領域(例えば90歳以上の患者が数人しかいない場合)では、少数サンプルによる不安定な推定である可能性があります。曲線の端の解釈は慎重に行う必要があります。

3. なぜ機械学習モデルは自動で交互作用を拾えるのか

これは決定木の構造そのものに理由があります。決定木は「年齢が70歳以上か」で分岐した先で、さらに「FIM運動が40点以上か」で分岐する、というように条件付きの分岐を積み重ねてモデルを構築します。この「ある条件の枝の中で、さらに別の条件で枝分かれする」という構造自体が、数学的には交互作用(ある変数の効果が、別の変数の値によって変わる状態)を表現しています。

つまり、ユーザーが「年齢とFIMの交互作用を見たい」と明示的に指定しなくても、木がデータから分岐を学習する過程で、交互作用が自動的にモデルに織り込まれていくのです。LightGBMやXGBoostのようなブースティング系モデルでは、この分岐が何百本、何千本と積み重なることで、複雑な非線形の交互作用まで捉えられるようになります。

1. Summary Plotとの関連

Summary Plot(Beeswarm Plot)は、全特徴量の重要度とその影響方向を一望する「俯瞰」のグラフでした。いわば「木を見る」前に「森を見る」ためのツールです。

これに対してDependence Plotは、Beeswarmの中の1つの特徴量だけを取り出し、横軸を「その特徴量の実際の値」に置き換えて、点を横に引き延ばしたものだと考えると理解しやすくなります。

  • Summary Plot:全特徴量を俯瞰する(森を見る)
  • Dependence Plot:気になる1つの特徴量を深掘りする(枝葉を見る)

Article 3で見えていた「年齢が高くなるほどSHAP値が下がるが、ある年齢を境に再び上がる」というパターンは、Beeswarm上では色の変化として大まかにしか捉えられませんでした。Dependence Plotを使うと、このパターンを連続的な曲線として、より精密に確認できます。

以下の画面では、ボタンを押すことでsummary plot とdependence plotがどのように関連しているか見ることが出来ます。ボタンを押して、動きを見てみましょう。

4. 統計モデルとの対比:交互作用の扱い方の違い

ここまでの内容を踏まえて、統計モデルと機械学習モデルで、交互作用の扱いがどう違うのかを整理します。

従来の統計モデル(線形回帰・GLMなど)

線形回帰やGLM(一般化線形モデル)で交互作用を扱う場合、ユーザー自身が「この2つの変数には交互作用があるはずだ」とあらかじめ当たりをつけて、交互作用項( )をモデル式に手動で追加する必要があります。

上の回帰式では この部分「β3(X1 × X2)」が交互作用項になります。

さらにこの交互作用項は、基本的に「線形(掛け算)」の形でしか表現できません。例えば年齢とFIM運動の関係が、「年齢が上がるほど、FIM運動の上がりやすさは一定のペースで変化する」という単純なものでないと、特別な数値の変換などが必要になります。また、GLMMで交互作用項を扱う際も、この「事前に指定する」という制約自体は変わりません。

機械学習モデル(ツリー系ブースティングモデル)

一方、LightGBMやXGBoostのようなツリー系モデルでは、3章で説明した通り、決定木の分岐構造自体が交互作用を内包しています。

統計モデルと機械学習モデルを対比すると以下のようになります。

統計モデル(線形回帰・GLMなど)機械学習(ツリー系ブースティング)
交互作用の指定ユーザーが手動で指定自動的にモデルに織り込まれる
表現できる形基本的に線形(掛け算)非線形(U字型・階段状など)も可能
見落としのリスク想定していない交互作用は捉えられない想定していなくても拾える可能性がある

もちろんこれは「機械学習が常に優れている」という単純な話ではありません。統計モデルの交互作用項は、係数という形で「どちらの方向に、どれくらいの強さで」効いているかを明示的に解釈できるという利点があります。一方、機械学習モデルが自動で拾った交互作用は、後述するSHAP interaction valuesのような追加の手段を使わない限り、その存在に気づくことすら難しいという裏返しの側面もあります。

5. より精密に見る:SHAP interaction values

Dependence Plotの「色」による交互作用の表現は、直感的で便利な反面、あくまで近似的な表現です。「最も強く交互作用している1つの変数」を色として選んでいるだけで、実際にどれくらいの大きさの交互作用があるのかを、数値として厳密に取り出しているわけではありません。

これをより精密に見るための手段が、SHAP値の中でもあまり知られていないSHAP interaction values(shap_interaction_values)です。

これにより、「年齢とFIM運動の交互作用は、他のペアと比べてどれくらい強いのか」を、色分けによる印象論ではなく、数値として比較できるようになります。

7. 解釈上の注意点:因果と相関を混同しない

ここまで機械学習モデルが自動で交互作用を拾えるメリットを中心に見てきましたが、いくつか重要な留保を添えておきます。

  • 相関的パターンであり、因果的な効果修飾とは限らない:SHAPが検出した「年齢とFIM運動の交互作用」は、あくまでモデルがデータから学習した関連性のパターンです。これは臨床的な意味での効果修飾(あるサブグループでのみ介入効果が異なるという因果的な主張)と同じものではありません。
  • サンプルサイズが小さいと偽の交互作用を拾いやすい:特にデータが少ない領域では、モデルが過学習気味に、実際には存在しない交互作用パターンを学習してしまうリスクがあります。

8. まとめ:SHAPシリーズを振り返って

4回にわたるSHAPシリーズを通じて、次のような解釈のステップを見てきました。

  1. 俯瞰する(Summary Plot):モデル全体でどの特徴量が重要か、全体像を掴む
  2. 深掘りする(Dependence Plot):気になる特徴量を1つ取り出し、実際の値とSHAP値の関係を精密に確認する
  3. 精密分解する(SHAP interaction values):Dependence Plotの色による近似的な表現をさらに一歩進め、交互作用の大きさを数値として取り出す

そして、この一連のプロセスの根底にあるのが、「統計モデルでは事前に手動で指定しなければ捉えられなかった非線形の交互作用を、機械学習モデルは決定木の構造上、自動的に織り込んでしまう」という違いでした。これは大きなメリットである一方、その分「モデルが何を学習したのか」を人間が後から解釈する手段(SHAP)が不可欠になる、ということでもあります。

Summary Plot・Bar Plot・Waterfall Plot・Force Plot・Dependence Plot、そしてSHAP interaction values。これらを使い分けることで、「モデルが何を予測したか」だけでなく、「モデルがなぜそう予測したか」を解釈できるようになります。

Dependence Plotに関連がある記事

コメント

タイトルとURLをコピーしました