論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
XAI(説明可能AI)
Explainable AI
倫理
別称: 説明可能AI

🔖 キーワード索引

XAI説明可能AISHAPLIMEfeature importanceブラックボックス解釈性Grad-CAM
SHAP(Shapley 値)LIMEPermutation ImportancePDP / ICE / ALE反実仮想(Counterfactual)大域説明と局所説明TreeSHAP説明 ≠ 因果忠実性(Faithfulness)GDPR 第 22 条・EU AI Act粗死亡率と高齢化率

💡 30秒で分かる結論

🍰 まずはやさしく

AIの考え方を教える翻訳機のようなものです。

AIがなぜそう判断したかを知るために使います。

スマホのアプリが推薦する理由を知る時に役立ちます。

この章ではAIに説明させるための技術を学びます。

判断根拠を説明できるAI

📍 あなたが今見ているもの

🍰 まずはやさしく

AIの答えに理由を付けるための技術です。

納得してAIを使うために必要になります。

ローンの審査でダメだった理由を知る時に使います。

ここでは定義から実装までを順番に読みます。

「医療AIが患者を要治療と判定 — でも理由は?」「住宅ローン審査でAIが NG を出した — なぜ?」 こうした問いに答える技術。 倫理規制でも要求されます。

🎨 直感で掴む

🍰 まずはやさしく

お医者さんが診断の根拠を話すようなものです。

結果だけでなく理由があることで信頼できます。

部活の選抜でなぜ自分が選ばれたか知りたい時と同じです。

AIがどこに注目して予測したのかを考えます。

医師の診断に例えると:

  • 診断結果=「肺炎です」 → AIの予測
  • 診断根拠=「胸部X線の右下肺野に陰影があり、 白血球が高い」→ XAI が出す説明

診断結果だけ言われても患者は納得しないし、 別の医師も検証できない。 だから根拠が必要、 という発想です。

XAI (Explainable AI、 説明可能 AI) は「機械学習モデルがなぜそう予測したか」を人間が理解できる形で提示する技術群の総称だ。 ブラックボックス化した深層学習や勾配ブースティングが社会的判断 (医療診断、 ローン審査、 採用) に使われ始めたことで、 「予測結果だけでなく根拠も出す」要件が GDPR や AI 法で法制化された。

代表手法は SHAP (Shapley 値ベースの寄与度分解)、 LIME (局所線形近似)、 Grad-CAM (CNN の注目領域可視化)、 PDP (Partial Dependence Plot)、 ICE プロット、 Anchors の 6 系統。 SSDSE-B-2026 で「粗死亡率(A4200/A1101×1000)を予測する Random Forest」を作ったとき、 「なぜ秋田の予測が高いのか → SHAP で高齢化率(A1303/A1101)の寄与が最大と判明」のように、 特徴量と予測の関係を数値で説明できる。

本ページでは、 SHAP の数学的定義 (Shapley 値) → 5 都道府県での値代入計算 → shap ライブラリの実装、 という流れで「ブラックボックスを開ける」技術を体験する。

📐 定義/数式

🍰 まずはやさしく

判断の根拠を説明できるAIのことです。

どのデータが結果に影響したかを計算します。

テストの点数にどの勉強時間が効いたか調べる感じです。

ここでは計算式を使って仕組みを詳しく説明します。

XAI(説明可能AI)(Explainable AI):判断根拠を説明できるAI

同義・関連語:説明可能AI

【SHAP値(Shapley値の機械学習応用)】
$$ \phi_j = \sum_{S \subseteq F\setminus\{j\}} \frac{|S|!(|F|-|S|-1)!}{|F|!} [f(S\cup\{j\}) - f(S)] $$
特徴 $j$ がモデル予測 $f$ にどれだけ寄与したかを、 ゲーム理論の Shapley 値で公平に分配。

🔬 記号・用語の読み解き

記号意味
$F$特徴の集合
$\phi_j$特徴 $j$ の SHAP 値(寄与度)
LIME局所線形近似による説明手法
Grad-CAMCNN の判断領域を heatmap で可視化

📊 評価・検証の視点

XAI(説明可能AI) を使った分析の 正しさを担保する ためには、 以下の観点で検証するのが定番です。

確認する点XAI(説明可能AI) で何を見るか
説明=真実ではないSHAP は「モデルの説明」であって因果ではない。
不安定さLIME はサンプリング依存で説明が揺らぐ。
計算コストSHAP は厳密計算が指数時間 → 近似(TreeSHAP等)。
「説明したから安心」の罠説明できても予測が偏ったままなら問題は残る。
再現性同じデータ・同じコードで同じ結果が出るか。このページの ▶ 実行ボタンで確かめられます

🧮 実値で計算してみる

例:住宅価格モデルで予測値1500万円のうち、 SHAP分解 → 「広さ +500、 築年数 -200、 駅距離 -100、 ベース1300」 → 各特徴の貢献が見える。

🧮 数式に値を入れて手で計算する: 特徴量重要度 (SHAP)

合成 3 特徴量で予測寄与 (シャプレー値) を計算する。

Step 1: 予測

特徴量: x1=2, x2=3, x3=1 ベース予測 E[f] = 5 実予測 f(x) = 12 → 寄与合計 = 7

Step 2: 寄与

特徴量SHAP 値
x1+3.0
x2+3.5
x3+0.5

Step 3: 一致確認

寄与合計 = 3.0 + 3.5 + 0.5 = 7.0 = f(x) - E[f] 最重要 = x2 (3.5)

🐍 Python で再現

1
2
3
4
5
6
import numpy as np
shap = np.array([3.0, 3.5, 0.5])
base = 5
pred = base + shap.sum()
print(f"予測: {pred}")
print(f"最重要 idx: {shap.argmax()}")

📤 実行結果

予測: 12.0 最重要 idx: 1

💬 手計算 (Step 3) 12.0 と Python 出力が完全一致。

🐍 Python での実装例

SSDSE-B-2026 などの実データを使った最小コード(9行):

📥 入力例(SSDSE-B-2026 全体:564 行 × 112 列 = 47 都道府県 × 2012〜2023 年) 年度 地域コード 都道府県 A1101(総人口) A1303(65歳以上人口) A4101(出生数) … 2023 R01000 北海道 5,092,000 1,681,000 24,430 … 2023 R13000 東京都 14,086,000 3,205,000 86,348 … 2023 R47000 沖縄県 1,468,000 350,000 12,549 … …(残り 112 列は住宅・家計・教育・医療など)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import numpy as np, pandas as pd, shap
from sklearn.ensemble import RandomForestRegressor
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=1)
df = df[df['年度'] == 2023].set_index('都道府県')      # 2023 年度の 47 都道府県
df['高齢化率'] = df['65歳以上人口'] / df['総人口'] * 100
X = df[['高齢化率', '総人口', '出生数']]
y = df['死亡数'] / df['総人口'] * 1000                   # 粗死亡率(人口千対)
m = RandomForestRegressor(n_estimators=50, random_state=0).fit(X, y)
explainer = shap.TreeExplainer(m)
sv = explainer.shap_values(X.iloc[:5])
base = float(np.ravel(explainer.expected_value)[0])
out = pd.DataFrame(sv, columns=X.columns, index=X.index[:5]).round(2)
out['予測'] = (base + sv.sum(axis=1)).round(2)
out['実測'] = y.iloc[:5].round(2)
print(f'基準値 E[f(x)] = {base:.2f}')
print('SHAP値(最初5行):'); print(out)
📤 実行例(実測) 基準値 E[f(x)] = 14.14 SHAP値(最初5行): 高齢化率 総人口 出生数 予測 実測 都道府県 北海道 0.90 -0.02 -0.01 15.01 14.75 青森県 2.95 0.08 0.15 17.33 17.60 岩手県 2.43 -0.01 0.07 16.64 16.86 宮城県 -1.74 0.05 0.09 12.55 12.65 秋田県 3.97 0.04 0.11 18.27 19.17

💬 基準値 14.14 は 47 県の粗死亡率(人口千対)に対するモデル予測の平均で、各県の予測はこれに 3 つの SHAP 値を足した値になる。秋田県は高齢化率だけで +3.97 押し上げられて予測 18.27、宮城県は −1.74 引き下げられて 12.55 と、どの県でも総人口・出生数の寄与は ±0.15 以内に収まっている。秋田県の実測 19.17 と予測の差 0.9 は SHAP では説明されない「モデルの外れ」なので、寄与の大きさと予測の当たり具合は分けて見ること。

※ data/raw/SSDSE-B-2026.csv は e-Stat SSDSE から取得した実データを想定。

⚠️ よくある落とし穴

❌ 説明=真実ではない
SHAP が示すのは「そのモデルが何を根拠に出力したか」であって、 現実の因果ではない。 高齢化率の寄与が大きくても「高齢化が死亡数を増やす」証明にはならず、 交絡の可能性が残る。 因果を言いたいなら DiD や IV など因果推論の設計が要る。
❌ 不安定さ
LIME は対象点の周囲を乱数でサンプリングして局所モデルを当てるため、 実行ごとに寄与の順位が入れ替わる。 報告する前に seed を変えて 5〜10 回回し、 順位が安定する変数だけを結論に使うこと。 SHAP でも背景データの選び方で値が動く。
❌ 計算コスト
SHAP の厳密計算は特徴量数 p に対して 2^p 通りの組合せを要し、 p=20 でも現実的でない。 木モデルなら TreeSHAP(多項式時間)、 それ以外は KernelSHAP の近似を使う。 近似である以上、 サンプル数を増やすと値が変わる点に注意。
❌ 「説明したから安心」の罠
説明を出せることと、 モデルが公平・妥当であることは別。 差別的な予測をしていても SHAP は「なぜそうしたか」を淡々と示すだけで、 問題を止めてはくれない。 説明は点検の入口であって、 公平性指標や誤り分析とセットで初めて意味を持つ。

🗺 概念マップ

「xai」を中心とした関連概念マップ。

XAI 説明可能AI 前提: DNN/GBDT 等 SHAP / LIME Permutation 重要度 応用: 与信/医療AI 対比: 線形回帰・決定木 統合: AI倫理 / EU AI法

このマップは XAI 周辺の知識ネットワークを表す。 中央に「XAI」、 上方に「公的統計の活用 (SSDSE 等で説明性を要求される文脈)」、 並列に「AI 倫理 / AI 法規制 (GDPR Art.22, EU AI Act)」「ブラックボックスモデル (DNN, GBDT)」、 下方に「学術研究 (NeurIPS / FAccT 等)」「実務応用 (医療診断・与信・採用)」が伸びる。

各枝は XAI の使用文脈を表現: (a) 上位 = AI 全般の倫理体系、 (b) 並列 = SHAP/LIME/Grad-CAM 等の手法、 (c) 派生 = Counterfactual Explanations や Integrated Gradients、 (d) 前段 = モデル学習 (XAI は学習済モデルが前提)、 (e) 後段 = 公平性評価 / AI 監査、 (f) 応用 = 規制対応 (説明責任)。

SSDSE-B-2026 で「粗死亡率(A4200/A1101×1000)」を予測するモデルを作った場合、 XAI で「どの都道府県特性が予測を駆動しているか」を SHAP で分解し、 政策提案の根拠として提示する流れになる。

🔗 隣接手法への橋渡し

XAI は「学習済みモデル + 説明」の組み合わせなので、 モデル開発と監査の両側に接続する。

EU AI Act では「高リスク AI システム」に説明性が義務付けられ、 SHAP/LIME のレポート添付が標準化されつつある。 医療・金融・公共サービス領域では XAI スキルが必須となっている。

🌳 手法選択フロー

「XAI(説明可能AI)」を扱う際の手法選択は、 状況に応じて以下のフローで判断すると迷いが減る。

  1. Step 1: 目的は記述か予測か?
    • 記述 (現状把握・要約) → 集計・可視化・要約統計量で全体像を掴む
    • 予測 (未知データへの推定) → モデル構築・検証フェーズへ移行
  2. Step 2: データの種類・規模は?
    • 数値データ・小〜中規模 → 「XAI(説明可能AI)」やその拡張手法を直接適用
    • カテゴリデータ → カテゴリ専用の SHAP TreeExplainer (SHAP) や PDP/ICE と組み合わせ
    • 大規模・高次元 → 計算効率を重視した近似手法 (FastSHAP, KernelSHAP の sampling、 Attention 可視化) を選択
  3. Step 3: 結果の解釈・共有は?
    • 専門家向け → 数値指標・統計検定で精緻に評価
    • 非専門家向け → 可視化・自然言語での要約を重視

このフローに沿って判断することで、 「XAI(説明可能AI)」を中核とした適切な手法選択ができる。

🎮 触って理解する — 大域的説明 vs 局所的説明

姉妹ページ SHAP が「1件の予測を寄与のウォーターフォールに分解する」局所説明の計算手順を扱うのに対し、 ここでは なぜ説明が「大域的」「局所的」の2種類必要なのか を体感する。 同じモデルでも「全体でよく効く特徴」と「この人の予測を動かした特徴」は一致しない——これが XAI の要点だ。

⚠️ これは架空の予測モデルです(実在の審査基準ではありません)。 与信スコアを予測するデモ用の加法モデルで、 数式を完全公開して透明にしています:
score = 50 + 0.04·年収 + 0.5·勤続年数 − 0.02·既存借入 + ( −0.02·(年齢−45)² + 10 )
・大域的重要度=参照8人での「平均 |寄与|」(全体でどれだけ予測を揺らすか)。
・局所的寄与 φⱼ =(この人の項の値)−(参照平均)。 加法性 f(x) − E[f] = Σ φⱼ が厳密に成立。
事例プリセット:

💡 バーをタップ/クリックすると各特徴の正確な値を表示。

※ 説明用の擬似ノイズ。 寄与が近い特徴は順位が入れ替わり、 「説明は必ずしも安定でない」ことが分かる(真のモデルは変わっていない)。

⚠️ 説明の落とし穴
  • 相関 ≠ 因果:「既存借入の寄与が −15」でも、 借入を減らせばスコアが上がるとは限らない。 寄与度はモデル内部の相関構造の翻訳であって介入効果ではない(Permutation Importance でも同様)。
  • 大域と局所は別物:全体で最重要な特徴(年収)でも、 年収が平均的な人の予測はほとんど動かさない。 「全体傾向」で個別事例を語ると誤る。
  • 説明の不安定性:近似的な説明手法はサンプリング乱数で揺れる。 上のチェックで体感できる。
  • 説明できた≠公平:根拠を示せても、 モデルの偏りが残っていれば問題は解決しない。
🚀 発展:説明は「モデル内部を人間の言葉に翻訳する」営み。 局所説明の代表が SHAP(ゲーム理論の公平配分)と LIME(局所線形近似)、 大域説明が Permutation Importance・PDP/ALE。 画像 CNN では勾配ベースの顕著性(Grad-CAM/Integrated Gradients)、 「何がどう変われば結果が変わるか」を示すのが反実仮想説明(Counterfactual)。 「後付けの説明」に頼らず最初から 解釈可能なモデル を選ぶ戦略もある。

🎯 直感をもう一段 — 「ブラックボックスを開ける」とは何か

XAI が相手にするのは ブラックボックスモデル ── 入力を入れれば出力は返るが、 内部で何が起きているかが人間には直接読めない モデル(深層学習・勾配ブースティング・ランダムフォレスト等)だ。 線形回帰や 決定木 なら係数や分岐条件をそのまま読めば「なぜ」が分かる(=内在的に解釈可能)。 だが精度を上げるほどモデルは非線形・高次元になり、 中身は不透明になる。 XAI は「出来上がった不透明モデルの外側から、 その振る舞いを人間の言葉に翻訳する」営みである。

大域的説明と局所的説明は「別の問い」に答える

同じ「なぜ?」でも問いは2種類ある。 混同すると必ず誤読する。

視点答える問い代表手法
大域的説明 (global)このモデルは全体として何を見ているかPermutation Importance・PDP・ALE・不純度重要度
局所的説明 (local)この1件の予測をどの特徴が動かしたかSHAP・LIME・反実仮想・Grad-CAM

上の「🎮 触って理解する」ウィジェットは、 まさに この2つが一致しないこと を体感するために作られている。 全体で最も効く特徴でも、 その特徴が平均的な値を取る個人の予測はほとんど動かさない。

透明性と精度のトレードオフ(SSDSE-B-2026 実測)

「解釈しやすいモデル」と「精度の高いモデル」はしばしば逆を向く。 SSDSE-B-2026(2023年・47都道府県)で 粗死亡率(死亡数 A4200 ÷ 総人口 A1101 ×1000、 実測で最小 9.7‰〜最大 19.2‰、 平均 14.1‰)を予測してみると:

つまり 透明なモデルは説明が要らない代わりに表現力が乏しく、 高精度モデルは表現力の代償として XAI という「翻訳装置」を後付けせざるを得ない。 どちらを選ぶかは、 規制・説明責任の重さと精度要求の綱引きで決まる。

⚠️ 落とし穴を掘り下げる — 「説明できた」の落とし穴(重要)

XAI の最大の危険は、 もっともらしい説明が出てしまうこと にある。 出力があるほど人は安心するが、 その説明が何を意味し何を意味しないかを取り違えると、 むしろ誤った確信を強める。 以下は特に踏みやすい罠を、 SSDSE-B-2026 の実測で確かめながら整理する。

① 説明 ≠ 真の因果メカニズム
SHAP や重要度が示すのは「このモデルの内部で特徴が予測をどう動かしたか」であって、 現実世界の因果ではない。 「高齢化率の寄与が最大」=「高齢化率を下げれば死亡率が下がる」ではない。 高齢化率と死亡率はどちらも地域の社会構造という共通要因の帰結(交絡)であり得る。 介入の効果を知りたいなら 因果推論・因果分析 の枠組みが別途必要だ。
② 説明手法どうしで結果が食い違う(実測例)
同じモデル・同じデータでも、 手法が違えば重要度ランキングは入れ替わる。 上の3特徴で 2位・3位が実際に反転する:
・相関ベース |r|: 高齢化率 0.97 > 出生率 0.60 > 年少人口率 0.46
・Permutation:  高齢化率 1.76 > 年少人口率 0.027 > 出生率 0.013

相関では「出生率>年少人口率」なのに、 モデル依存の Permutation では「年少人口率>出生率」。 どちらが正しいという話ではなく、 測っている量が違う(片や周辺相関、 片やモデル予測への貢献)。 「重要度」という言葉を無条件に信じてはいけない。
③ 相関ベースの特徴量重要度は解釈を誤りやすい
不純度ベースの重要度(RF の feature_importances_)は、 カテゴリ数の多い変数や連続変数を過大評価する既知のバイアスがある。 また特徴量どうしが相関していると(多重共線性)、 本来1つの効果が複数の特徴に分散して配分され、 個々の重要度は薄まる。 事前に相関構造・VIF を確認し、 可能なら Permutation Importance(検証データ上で測る)と併用すること。
相関の強い特徴を追加したときの重要度の変化
図5 ページの 4 特徴のモデル(青)に、高齢化率と r = −0.949 の 15〜64 歳人口率(A1302 / A1101)を足したモデル(橙)。高齢化率の平均 |SHAP| は 1.591 → 1.379、Permutation Importance は 1.705 → 1.338(−22%)に下がり、新しい列が平均 |SHAP| 0.252 を受け取った。2023 年度 47 県、GBR random_state=42。

→ 死亡率を説明する情報は増えていないのに、「高齢化率の重要度」は 2 割下がりました。15〜64 歳人口率は「高齢化率の裏返し」なので、モデルは分岐にどちらを使っても同じように当てられ、重要度が 2 列に分かれます。「15〜64 歳人口率も効いている」と読むのではなく、相関の強い列をまとめた合計(ここでは 1.379+0.252 ≒ 1.63)で見るか、どちらか 1 列に絞ってから重要度を出します。

④ SHAP も「相関前提」から自由ではない
SHAP は加法性(f(x)=φ₀+Σφⱼ が厳密成立)という強力な性質を持つが、 標準的な実装は特徴量の独立性を暗黙に仮定して周辺分布から欠損特徴を補完する。 特徴が強く相関している場合、 現実には存在しない組み合わせ(例:高齢化率が高いのに出生率も高い県)を評価してしまい、 寄与配分が歪む。 因果構造を織り込む Causal SHAP や、 条件付き期待値版などの拡張はこの前提を緩めるための試みである。 SHAP=因果、 ではない。
⑤ 説明の安定性 ── 同じ予測でも説明が揺れる
LIME は近傍サンプリングの乱数に依存し、 実行のたびに係数が変わり得る。 SHAP でも背景データ(background dataset)の選び方で値が動く。 ウィジェットの「🎲 サンプリングの揺らぎを再現」チェックは、 寄与が近い特徴の順位が入れ替わる様子を疑似的に見せている(モデル自体は不変)。 説明を1回だけ出して結論にせず、 複数回・複数手法で安定性(Stability)を確認する。
年度ごとに学習し直したときの平均 |SHAP| の推移
図6 2012〜2023 年度の各年度の 47 県だけで同じ GBR を学習し直し、TreeSHAP の平均 |φ| を並べた(縦軸は対数)。高齢化率は 1.07〜1.59 で全年度 1 位、出生数は全年度 2 位、3 位は 2018 年度だけ総人口(0.122)で、ほかの 11 年度は月間有効求人数。

→ 「主因は高齢化率」という説明は 12 年度すべてで変わらず、安定しています。一方、重要度の小さい 3・4 位は 2018 年度に入れ替わり、総人口の値は 0.016(2020 年度)〜0.122(2018 年度)と 7 倍以上揺れます。1 年度分の結果で「総人口は 4 列中最下位」と言い切れるのは、その年度についてだけです。重要度の小さい特徴の順位は、年度・乱数・分割を変えて繰り返したときに同じかどうかを確かめてから報告します。

⑥ 確証バイアスと説明の過信
人は「自分の仮説に合う説明」を無批判に受け入れやすい(確証バイアス)。 「高齢化率が主因」という説明が直感に合うと、 それ以外の可能性(測定バイアス、 交絡、 モデルの誤設定)を検証せずに納得してしまう。 説明がもっともらしいことと正しいことは別だ。 都合のよい説明ほど、 反例を探す姿勢が要る。
⑦ post-hoc 説明の原理的限界
SHAP・LIME・Grad-CAM はすべて「学習後(post-hoc)に外から近似する」手法だ。 近似である以上、 元モデルの振る舞いを完全には再現できず、 忠実でない(unfaithful)説明があり得る。 「説明を受ける権利」への形式的対応として説明を貼り付けても、 その説明がモデルの実挙動とズレていれば意味がない。 説明の 忠実性(Faithfulness) を測る(特徴を削って予測変化を見る等)ことを忘れない。 説明できても、 モデルの偏り(不公平)自体は 公平性評価 で別途点検する必要がある。

🚀 発展 — XAI 手法の地図と、説明を「評価」する視点

2軸で手法を整理する(スコープ × モデル依存性)

XAI 手法は 大域 vs 局所(何を説明するか)と モデル固有 vs モデル非依存(どのモデルに使えるか)の2軸で地図化できる。 この地図を持つと「今の目的にどれを使うか」が一意に決まる。

 モデル固有 (model-specific)モデル非依存 (model-agnostic)
大域 (global)線形係数、 決定木のルール、 不純度重要度、 TreeSHAP 集約Permutation Importance、 PDP、 ICE、 ALE、 大域サロゲート
局所 (local)TreeSHAP、 Grad-CAM、 Integrated GradientsKernelSHAP、 LIME、 Anchors、 反実仮想

主要手法のひとことガイド

「後付け」を避ける ── 最初から解釈可能なモデル

post-hoc 説明の限界(本文⑦)を避ける根本策は、 そもそも解釈可能なモデルを選ぶことだ。 決定木(分岐ルールがそのまま説明)、 線形/ロジスティック回帰(係数が寄与)、 そして GAM(一般化加法モデル) は代表格。 GAM は各特徴の効果を滑らかな1変数関数 f₁(x₁)+f₂(x₂)+… として可視化でき、 「高齢化率が上がると死亡率がどう変わるか」を非線形のまま直接読める。 EBM(Explainable Boosting Machine)はこの発想を精度側に寄せた現代版だ。 規制領域(医療・金融)では「後付けの説明」より「最初から透明」が推奨されることが多い。 なお 特徴量 の設計(特徴量エンジニアリング)で解釈しやすい変数を作っておくことも、 説明の質を根本から左右する。

説明そのものを「評価」する ── 忠実性の検証

説明は出力して終わりではなく、 その説明が本当にモデルを反映しているか を測る対象でもある。 主な評価軸:

評価軸問い測り方(例)
忠実性 Faithfulness説明が真の挙動を反映するか重要とされた特徴を削って予測がどれだけ変わるか(ablation)
安定性 Stability似た入力で似た説明が出るか近傍サンプル間・再実行間の説明の差分
簡潔性 Sparsity人が読める短さか寄与が非ゼロな特徴の数
整合性 Agreement手法間で結論が揃うかSHAP・Permutation・相関の順位相関(本文②の食い違いを定量化)

「説明が出た」で満足せず、 忠実性・安定性・手法間整合性まで確認して初めて説明を報告に使える。 これが XAI を「見栄えのよい飾り」から「検証可能な道具」へ引き上げる分岐点だ。