Sobol
概要
Sobol 感度指数は、目的関数の分散分解に基づいてパラメータの重要度を定量化するグローバル感度分析手法です。 目的関数の分散を各パラメータの寄与に分けることで、線形か非線形かを問わず、パラメータ間の交互作用も含めた影響度を の値として返します。
Tunny Dashboard では 2 種類の指数を提供します:
| 指数 | 記号 | 意味 |
|---|---|---|
| 一次指数 (First-Order) | パラメータ の単独寄与率 | |
| 全効果指数 (Total-Effect) | の単独 + 他パラメータとの交互作用を含む総寄与率 |
理論背景
ANOVA 分散分解
Sobol 分解は、モデル出力 の分散を各パラメータの寄与に分解します:
- : のみが変化したときの の期待値の分散
- : と の交互作用分散
一次指数
x_i の変化だけで説明できる Y の分散の割合です。 S_i の合計は ≤ 1(交互作用がなければ = 1)です。
全効果指数
X_{~i} は「x_i 以外のすべてのパラメータ」です。 ST_i は、x_i の単独効果と x_i が絡むすべての交互作用効果の合計です。 は常に成立します。 差 が大きいほど、 が他パラメータとの交互作用に強く関与していることを意味します。
たとえば 、 というパラメータを考えます。 これは単独ではほとんど効かないのに、ほかのパラメータと組み合わさると分散の 4 割を動かしている、という読み方になります。 こうしたパラメータは Spearman や Ridge では低く出るので、単独効果しか測れない指標だけを見ていると取りこぼします。
有限サンプル推定の注意: Saltelli 一次指数推定量と Jansen 全効果推定量は独立に計算されるため、有限サンプルでは が生じることがあります。 Tunny Dashboard では推定後に を適用してから にクランプし、理論的性質を出力値で保証しています。
Tunny Dashboard での計算方法
全体フロー
直接 Monte Carlo 積分を行うと n × p 倍のシミュレーション実行が必要になり、最適化問題では現実的ではありません。 代わりに二次 Ridge サロゲートモデルを構築し、そのモデル上で Saltelli サンプリングを行います。 評価対象をサロゲートに置き換えることで、Grasshopper 定義を再実行することなく、1024 点の Saltelli サンプリングを回せます。
- 二次 Ridge サロゲートを構築します。
- Saltelli 行列 A, B を ChaCha8 で生成します。
- A, B, AB_i でサロゲートを評価します。
- Jansen 推定量で S_i, ST_i を計算します。
Step 1: 二次 Ridge サロゲートモデル
特徴量構成
p 個の標準化済み線形入力から p(p+3)/2 次元の二次特徴量ベクトルを構築します:
例: p = 3 → 3 + 3 + 3 = 9 次元 (= 3×6/2)
したがって、サロゲートの特徴量次元は
であり、学習サンプル数 は少なくとも と同程度、実務上は が望ましいです。
サロゲートの学習
- の各列を Z スコア標準化
- 二次特徴量 を構築
- の各列を再度 Z スコア標準化
- 各目的関数に対して Ridge( ) を適合
サロゲートの評価
ここで φ̃(x) は、二次特徴量を訓練データの統計量で標準化したものです。
Step 2: Saltelli サンプリング
疑似乱数生成: ChaCha8
ChaCha8 アルゴリズムに基づき、シードベースの決定論的な一様乱数([0, 1) の範囲)を生成します。
初期シード: 0xDEAD_BEEF_1234_5678(固定・再現性あり)
行列 A, B の生成
各パラメータの値域 [lo_j, hi_j] は、実際のトライアルの min/max から取得します。
AB_i 行列
A の第 i 列のみを B の第 i 列で置換した行列です:
Step 3: サロゲート評価
Step 4: Jansen 推定量
一次指数(Saltelli 2010)
全効果指数(Jansen 1999)
分散の推定
の場合(サロゲートが定数に近い)は を返します。
クリッピング
推定誤差による範囲外値を防ぐため、最終値を にクリップします:
複数目的関数への対応
Importance チャートでは、各パラメータのスコアとして全目的関数に対する指数の平均を表示します:
パラメータ設定
| 設定項目 | 値 |
|---|---|
| Saltelli サンプル数 | 1024 |
| Ridge 正則化強度 α | 1.0 |
| 乱数シード | 0xDEAD_BEEF_1234_5678 |
必要データ量
- 最低 2 トライアル(n ≥ 2)、p ≥ 1、目的関数 ≥ 1 が必要です
- サロゲートの精度は n とともに向上します。目安として n ≥ 10 × p(p+3)/2 を推奨します
計算が動く最低ラインと、結果を信用してよいトライアル数は別ものです。 たとえばパラメータが 5 個なら特徴量次元は になるため、目安となるトライアル数は 200 です。 この設定では n が 2 でも指数自体は返りますが、20 個の係数を 2 件のデータから決めていることになるので、その値は読まないでください。
パラメータの扱いに関する前提
数値列はそのまま使用し、カテゴリ列は文字列ラベルを出現順の整数 ID(0.0, 1.0, …)へラベル符号化して使用します。
カテゴリパラメータはラベル符号化済みの数値として扱われるため Sobol 計算の対象となりますが、整数 ID は順序や距離の情報を持たないため、Sobol 指数の解釈はカテゴリ変数に対して近似的なものとなります。
特性・限界
強み:
- 線形、非線形、交互作用をすべて扱えます
- 値域が で複数パラメータ間の比較が容易です
- ST_i - S_i で交互作用の強度を把握できます
- サロゲートを使うため、トライアル数が限られていても計算可能です
弱み:
- サロゲートモデル(二次 Ridge)の精度に結果が依存します
- 真の関数が高次非線形または強い不連続性を持つ場合は精度が落ちます
- p が大きくなると特徴量数 p(p+3)/2 が増加し、サロゲートの学習精度が低下する可能性があります
- 乱数シードが固定のため再現性はありますが、N の選択で結果が変わります
弱みの 1 つめは、指数をサロゲートの上で計算している以上、避けられない性質です。 二次特徴量 が持つのは、1 次の項、2 乗の項、2 変数の積までです。 しきい値のような不連続な応答や、3 つ以上のパラメータが同時に絡む効果は表現できません。 ですが、そうした場合でも が 0 でないこと自体は、「単独効果では説明しきれない何かがある」という手がかりになります。 Sobol の値をそのまま順位として使うより、まず と の差を見て、次に何を調べるかを決める使い方が扱いやすいです。
参考文献
- Saltelli, A. et al. (2010). Variance based sensitivity analysis of model output. Design and estimator for the total sensitivity index. Computer Physics Communications, 181(2), 259–270. https://doi.org/10.1016/j.cpc.2009.09.018
- Jansen, M. J. W. (1999). Analysis of variance designs for model output. Computer Physics Communications, 117(1), 35–43. https://doi.org/10.1016/S0010-4655(98)00154-4
- Sobol, I. M. (1993). Sensitivity estimates for nonlinear mathematical models. Mathematical Modelling and Computational Experiments, 1(4), 407–414.