Think Outside the Box

自分のメモのために。

A Unified Approach toInterpreting Model Predictions

「A Unified Approach toInterpreting Model Predictions」を読んだ内容をまとめる。

概要

●どういう内容?

「モデルAとモデルBの精度を比較した時、モデルAの方がモデルBよりもAccuracyが高いが、何故なのかわからない」といったことはよくある

→それを解決するのがSHAP。何の特徴量が効果的に働いているから精度が高いということがわかる

●SHAPとは?

  • 特徴量ごとの重要度を求める方法

●SHAPはどういう時に利用できそう

  • モデルの比較を行いたい時
  • モデルを作成したが、複雑なモデルすぎて、どの特徴量が最終的に効果的だったのかがよくわからない時

Intorduction

一般的に、正解率と解釈性はトレードオフの関係性になりがち。 線形モデルはその例の一つであり、精度自体は低くても、解釈のしやすさから選択されることが多い。 この論文で提案している手法を使うと、どのようなモデルの予測についても説明することが可能になる。

また、この論文内では、Additive Feature Attribution Methodsというものを定義していて、最近利用されているような手法を統一して表すことができる。 Additive Feature Attribution Methods自体は、ゲーム理論の考え方を応用したものである。 この論文では、SHAP値という変数重要度の推定値とその推定方法を提案し、これによりモデルがさらに解釈しやすくなることを示す。

Additive Feature Attribution Methods

論文内では、以下のように定義されている。 f:id:tngwnaho:20190602221400p:plain

  •  f:説明したい予測モデル

  •  g: 説明モデル

説明モデルgを使って、もともとの予測モデルfを説明したい。局所的に近似したモデルを作成する方法自体は、LIMEですでに提案されている。

なお、gとfの関係性は、以下のように表すことができる

 z = h_x(z')  g(z') \approx f(h_x(z'))

これを踏まえて、上記のような加法メソッドを定義している。  \phi_iを各特徴量の効果を表す数値として定義し、全特徴量の効果の合計値を、元のモデルの予測値 f(x)に近似させている。

Additive Feature Attribution Methodsを満たしているモデル

  • LIME
  • DeepLIFT
  • Layer-Wise Relevance Propagation
  • Classic Shapley Value Estimation

をあげている

Simple Properties Uniquely Determine Additive Feature Attributions

Additive Feature Attribution Methodsは以下3つの性質を満たしている。 これらの性質はClassic Shaply Value Estimationの性質としては知られているが、他のAdditive Feature Attribution Methodsの性質としては知られていない。

Local Accuracy

入力 xに対して元々の予測モデル[tex:fを近似する際、この性質によって、説明モデル gに対してモデルfの出力値と g(x^{\prime})が一致することを要求している。 f:id:tngwnaho:20190603234707p:plain

Missing

入力 xがその特徴の有無を表すならば、元の空間で欠損値はなんのインパクトもない。そのため、以下が成り立つ f:id:tngwnaho:20190604203245p:plain

Consistensy

関数\phiは一様連続である f:id:tngwnaho:20190604203424p:plain

SHAP(Shapley Additive exPlanation) Value

この論文では、SHAP値という特徴量の重要度を提案する。

以下の図がとてもわかりやすく、  f(z)は全ての入力値  x^{\prime} が0の値の時であり、  z_1 = x_1などの条件式がある場合は、指定された変数の値が1をとることを表している。 この図からもわかるように、各特徴量の0,1をとる場合の条件付き確率の期待値を利用して、 その差分を効果 \phiとしている

f:id:tngwnaho:20190604205025p:plain

期待値ではなく、真のSHAP値を求めることは難しい。しかし、Additive Feature Attributions methodsから得たインサイトを繋げることで、 近似することができる。

ここでは既存手法であるShapley Sampling Value と Karnel SHAPをmodel-agnostic approximation methodsとして紹介し、 Max SHAPとDeep SHAPをmodel-type-specific approximation methodsの中の2つとして紹介している。

主成分分析について振り返る

主成分分析とは

  • 多次元データに内在する情報 = 分散と考えて、情報を出来るだけ失うことなく 新たな変数を定義していく方法

  • 合成された変数を通してデータの中から有益な情報を読み取るための有効な分析手法

分散最大化のイメージ

2次元データに対して主成分分析を適用する場合、観測データの情報を最も表す(=分散が最も多い)線形モデルを考えたい。 そこで、データをある一次元の軸へ射影して、その分散が最大となる軸を見つける。これを第1主成分という。 f:id:tngwnaho:20190418181728p:plain

次に、第1主成分と直行するという条件のもとで分散を最大とするような射影軸を第2主成分という。

参考: 主成分分析と固有値問題 | Aidemy Blog

モデルの評価基準について

残差平方和

 \sum_{i=1}^{n} {\hat{y_i}-{y_i}}

  • 残差平方和は高次な式ほど小さい値になりやすい

Mellowsの C_p基準

詳細はこの資料

http://www.orsj.or.jp/~archive/pdf/bul/Vol.23_05_280.pdf

にありそう。だけど結構むずい。。

情報量基準

構築したモデルの予測値を確率分布で表して、 真の確率分布との距離をカルバック・ライブラー情報量と呼ばれる基準を用いて測る

この距離自体は、「モデルの当てはまりの良さ」のみを評価するのではなく、 「このモデルを将来のデータの予測に利用しても大丈夫かどうか」という観点で見ている

 カルバック・ライブラー情報量

最尤法によって推定された確率分布モデルが、データを発生した真の確率分布にどれだけ近いかを測ることを考える。 データを発生された真の分布 g(y)を近似するために、想定した確率分布を

 \mathcal{F} = \{ f(y|\theta); \theta \in \Theta \subset {R}^{p} \}

とする。( \Thetaは線形回帰でいうと回帰係数などのパラメータとなる。このパラメータ \thetaは最尤法によって推定する)

”真の確率分布 g(y)"が”想定した確率分布モデル”に含まれるということは、 ある \theta \in \Thetaが存在していて、 g(y) = f(y|\theta_0) と表すことができる状態。

今後このモデルを利用していって大丈夫なのかを判断するため、 真のモデルからランダムに取ってきたデータ集合  z \in Zの従う分布 g(z)を、構築した統計モデル f(z|\hat{\theta})で 予測した時の平均的な良し悪しを測る。

→この g(z) f(z|\hat{\theta})の分布の距離を測るのが「カルバック・ライブラー情報量」となる

 \displaystyle{ I\{g(z; f(z|\hat{\theta}))\} = E_G[ \log{\frac{g(z)}{f(z|\hat{\theta})}} ] - E_G[ \log{g(z)} ] - E_G[ \log{f(z|\hat{\theta})} ]}

とかける。

  • 左の項: E_G[ \log{\frac{g(z)}{f(z|\hat{\theta})}} ]

ここのモデルには依存せず、一定の値をとるので、無視してOK

  • 右の項:  E_G[ \log{f(z|\hat{\theta})} ] = \int{ \log{f(z|\hat{\theta})g(z) dz}}

これは、未知の真の確率分布 g(z)に依存するため、この値を計算できない。

したがって、この式をどうやって推定するのかという話に帰着する。

AIC

 E_G[ \log{f(z|\hat{\theta})} ]は、 g(z)に依存していて未知なる値だが、観測したデータから推定することはできる。 等確率にデータが取れると仮定して

 \hat{g(z)} = \frac{1}{n}, z=y_1, y_2, \dots, y_n

で推定する。この結果、平均対数尤度の推定量として、

 E_G[ \log{f(z|\hat{\theta})} ] = \log{f(y_1 | \hat{\theta}(y))\hat{g}(y_1)} + \dots +  \log{f(y_1 | \hat{\theta}(y))\hat{g}(y_n)} = \frac{1}{n} \sum_{i=1}^{n} \log f(y_i | \hat{\theta}(y))

をえる。

ただし、これらの推定値は標本分布に従っていて、真の分布ではない。また全く同じ値が取り出されていることもあることによるバイアスなども考慮しないといけない。

最終的には、

情報量基準 

= -2 * (統計モデルの対数尤度 - バイアス補正項 ) 

= [tex: -2 \log{f(y|\hat{\theta})}]  + 2(バイアス補正項)

という式で表せるらしい。 (この式に持って行くまでがよくわからない...)

参考

https://www.amazon.co.jp/%E5%A4%9A%E5%A4%89%E9%87%8F%E8%A7%A3%E6%9E%90%E5%85%A5%E9%96%80%E2%80%95%E2%80%95%E7%B7%9A%E5%BD%A2%E3%81%8B%E3%82%89%E9%9D%9E%E7%B7%9A%E5%BD%A2%E3%81%B8-%E5%B0%8F%E8%A5%BF-%E8%B2%9E%E5%89%87/dp/4000056530

質的データに対する線形モデル

質的データに対する線形モデルとは?

  • プロビットモデル
  • ロジットモデル(ロジスティックモデル)

定式化

 y_i \in {0,1}を説明変数  \bf{x}_i \in {R}^kで表すとき、線形モデルを考えると、

 \hat{y_i} = \beta_0 + \beta_1 \bf{x}_i + \epsilon_i

として表すことができる。 回帰モデルによる予測値\hat{y_i}は連続的な値となり、

  •  \hat{y_i} >0の場合、 y_i = 1

  •  \hat{y_i} \leq 0 の場合、 y_i = 0

として、 y_iの値を推定する。

プロビットモデルとロジットモデルの違いは?

 P(y_i = 1 | \bf{x}_i の形としてどの分布を採用するかが異なる

  • プロビットモデル 標準正規分布を採用

  • ロジットモデル ロジスティック分布を採用

両方の分布は、原点に対して対称性のある分布である。 ほとんど似たような分布の形をしているので、好みの問題かも...

ロジスティック回帰の回帰係数の検定は?

単回帰や重回帰の時と同じ。

多重共線性の対策方法

参考

自然科学の統計学

重回帰モデルについて考える

重回帰のモデルは、行列で表すと、

 \hat{y}= Xb + e

 (y \in {R}^{n},  X \in {R}^{n \times h}, b \in {R}^{h})

この時、 \hat{y}が元の値 yを最も近似できるような bを推定する。

単回帰モデルと重回帰モデルの違い

他の説明変数の影響を調整した上で、目的変数と説明変数の関連を見ることができるのが重回帰分析。 f:id:tngwnaho:20190411181102p:plain 引用:https://www.niph.go.jp/soshiki/jinzai/download/etc/hotetsu2009.pdf

重回帰モデルの決定係数

決定係数は説明変数が増えると1に近づいてしまう傾向にある。 説明変数の数が多い場合には、そこを補正した自由度調整済み決定係数を使う。 n: サンプルサイズ、 k: 説明変数の数とすると

 {\displaystyle {R}^2 = 1 - \frac{ \sum{{\hat{e_i}}^2/(n-k-1)}}{\sum{{(y_i - \bar{y})}^2/(n-1)} } = \frac{\sum{{(\hat{y_i}-\bar{y})}^2}}{\sum{{(y_i - \bar{y})}^2}}}

この決定係数の正の平方根が、「実際の目的変数yと、重回帰式をあてはめて計算した推定値 \hat{y}との相関係数」になる。

重回帰分析を行う上での注意点

相関の強い2変数が入っていると多重共線性が起きてしまい、正しく回帰係数を推定することができない。

多重共線性を防ぐ方法

これらの利用の仕方は、こちらのソーシャルデータサイエンスの論文 を参考にしたい。 こちらの論文では、

Step1: 5 cross-validationでAICによるstepwise法、Elastic Netを実施

Step2: Step1によって学習データ・検証データの最小二乗誤差を確認

Step3: 学習データ・検証データの両方における最小二乗誤差が小さいモデルを選択する

という流れで、どのモデルを選択するかを考えている。

参考

重回帰分析(魚野;2006)

重回帰分析(栗田;2005)

単回帰モデルについて考える

単回帰モデルについて

説明変数X と目的変数yに対して、以下のような線型モデルを考える。 最も目的変数y\hat{y}が近似できるような回帰係数 aを求める。 bは定数項で切片と呼ばれる。

 \hat{y} = ax + b

回帰係数の求め方

回帰係数を求めるためには、最小二乗法を利用する。 なお、誤差項が以下の3つの性質を満たしていて、

  • 不偏性:  E(\epsilon) = 0
  • 等分散性:  V(\epsilon) = \sigma^{2}
  • 無相関性:  Cov(\epsilon_i, \epsilon_j) = 0 (i neq j)

かつ、誤差の分布が正規分布出会った時のみ、最小二乗法を使って最も当てはまりの良い bを求めることができる。

最小二乗法による回帰係数の推定

誤差項は、

 \epsilon_i = y_i - (ax_i + b)

と表せる。誤差の総和

 S = \sum {\epsilon_i}^2 = \sum{{(y_i - (ax_i + b))}^2}

を最小にするような、aとbを求めたい。 Sを最小化するような \hat{a}, \hat{b}を求めるために、

\frac{\partial S}{\partial b}  = -2 \sum(y_i - ax_i - b)  = 0 \frac{\partial S}{\partial a}  = -2 \sum(y_i - ax_i - b)X_i  = 0

ここから導き出せる正規方程式を解くことで、

  • {\displaystyle \hat{a} = \frac{\sum(x_i - \bar{x})(y_i-\bar{y})}{\sum{{(x_i - \bar{x})}^2}}}
  • {\displaystyle \hat{b} = \bar{y} - \hat{a}\bar{x}}

回帰係数が導き出せる。

また、  \hat{e_i} = y_i - \hat{y_i} は、回帰残差と呼ばれて、xの変数と切片を使っても説明できていない部分となる。

モデルの当てはまりを表す決定係数

変数xがどの程度yを説明しているのかは、モデルの妥当性・有効性を考える上で重要。 この当てはまりの良さを表す基準として、決定係数が使われる。 y_iのバラツキの総和は  \sum{{(y_i - \bar{y})}^2} で表せる。

これは以下のように

 \sum{{(y_i - \bar{y})}^2} = \sum{{(\hat{y_i}-\bar{y})}^2} + \sum{{\hat{e_i}}^2}

(全変動(総平方和) = 回帰変動(回帰平方和) + 残差変動(残差平方和))

と分解することができる。

イメージはこんな感じ(引用:https://bellcurve.jp/statistics/course/9706.html) f:id:tngwnaho:20190411143557p:plain

決定係数の式は、

 {\displaystyle {R}^2 = 1 - \frac{ \sum{{\hat{e_i}}^2}}{\sum{{(y_i - \bar{y})}^2} } = \frac{\sum{{(\hat{y_i}-\bar{y})}^2}}{\sum{{(y_i - \bar{y})}^2}}}

つまり、「全変動のうち回帰変動がどれくらい多いか = 残差変動がどれくらい少ないか」を表すのが決定係数。

なお、決定係数の正の平方根は「相関係数」になる。

偏回帰係数の検定

参考: https://bellcurve.jp/statistics/course/9702.html

 \hat{a},  \hat{b} の値をもとに、母集団の偏回帰係数 a, bについての色々な仮説を検定する方法を考える。 そのために、偏回帰係数の標本分布を考える。 標本分布は自由度n-k-1のt分布に従う(ここよくわかってない。n:サンプルサイズ, k:説明変数)  \lambda = 0として、検定したい偏回帰係数に意味があるのかないのかを確認する。

帰無仮説 Ho : 偏回帰係数b = \lambda (\lambdaは定数。)

対立仮説:

  • H1:  b \neq \lambda (両側検定)

  • H1:  b  > \lambda (片側検定)

 T-value = \frac{回帰係数-\lambda}{回帰係数の標準誤差(標準偏差の推定量)}

を使って検定を行う。

参考

最尤推定 | Instruction of chemoinformatics by funatsu-lab

自然科学の統計学

27-4. 決定係数と重相関係数 | 統計学の時間 | 統計WEB

確率の基礎をもう一度

確率変数とは?

ある事象を表す値が確率pにしたがって出現する時、その値を確率変数という。 (例)サイコロの目や宝くじの当選金額など

確率変数には離散か連続か、値のタイプに応じて2タイプ存在する。 * 離散型 * 連続型

確率分布とは?

確率変数がどんな値になる可能性が高いのかなど、実現値と確率の間の関数として表現されてるもの。 (例) 実現値が変数x以下を取る確率分布はこちらのように定義する。  F(x) = P(X \leq x)

連続型の確率分布の場合

確率分布 F(x)微分可能な場合が多い。この時導関数確率密度関数、密度関数として f(x)と表す。

 F(x) = \int_{-\infty}^{x} f(u) du

と表現できる。

離散型・連続型の期待値と分散

 離散型

  • 期待値

 {\displaystyle E(X) = \sum_{i}{p_i x_i}}

  • 分散

  {\displaystyle V(X) = E{{(X - \mu)}^2} = \sum_{i}{p_i {(x_i - \mu)}^2}}

また、

 {\displaystyle V(X) = E({X}^2) - {{ E(X)}}^2 } とも表せる。

連続型

  • 期待値

 E(X) = \int_{-\infty}^{\infty} {x f(x)} dx

  • 分散

 V(X)  = \int_{-\infty}^{\infty}{{(x-\mu)}^2f(x)dx}

期待値・分散の和

  • 期待値の和の公式

 E(c_1 X_1 + c_2 X_2 + \dots + c_n X_n) = c_1 E(X_1) + c_2 E(X_2) + \dots + c_n E(X_n)

  • 分散の和の公式

 V(c_1 X_1 + c_2 X_2 + \dots + c_n X_n) = {c_1}^2 E(X_1) + {c_2}^2 E(X_2) + \dots + {c_n}^2 E(X_n)