【統計検定】フィッシャー情報量とクラメール・ラオの不等式について解説|python

こんにちは、青の統計学です。

今回は、正規分布を例に取って、フィッシャー情報量とクラメール・ラオの不等式について深掘りできればと思います。

統計検定準一級の試験範囲にもなっておりますので、この機会に是非理解していきましょう。

フィッシャー情報量(Fisher information)

フィッシャー情報量とは、\(I(\theta)\)の形で表される、「確率分布が\(\theta\) (パラメータ)に対してどのくらい変わりやすいか」を示す指標です。

以下のような形で表されます。

$$I(\theta)=E[(\frac{d}{d\theta}log f (X_1;\theta))^2]$$

確率密度に対して対数をとり、微分したものを2乗して期待値をとったものが、フィッシャー情報量です。

ガウス分布のフィッシャー情報量を求めてみましょう。

ガウス分布の確率密度関数は以下のとおりです。

$$f(y) = {\frac{1}{\sqrt{2\pi \sigma^2}}exp(-{\frac{(y-\mu)^2}{2\sigma^2}})}$$

詳しい計算は省略しますが、フィッシャー情報量は分散の逆数になります。

$$I(\theta)={\frac{1}{\sigma^2}}$$

ガウス分布については、以下のコンテンツをご覧ください。

では、具体的にはいつ使われるのかをみてみましょう。

漸近正規性(asymptotic normality)

フィッシャー情報量は、漸近正規性に登場します。

漸近正規性とは、最尤推定量が持つ嬉しい性質の一つであり、一致性の議論を進めた性質でもあります。

$${\sqrt{n}}(\hat{\theta}^{ML}-\theta)\approx N(0,{\frac{1}{I(\theta)}})$$

推定量と真のパラメータの差とサンプル数の根号は、期待値0で分散がフィッシャー情報量の逆数を持つ正規分布に分布収束するという性質です。

\(I(\theta)\)はデータ一個あたりのフィッシャー情報量です。

ちなみに一致性については、以下のコンテンツでも解説しておりますが、

一致性とは、「推定量はnが大きくなればなるほど、真のパラメータに確率収束する」という性質です。

最尤推定量は、一致性や漸近正規性を持ちますが、不偏性を満たさないのでご注意ください。

不偏性とは、「推定量の期待値は、真のパラメータと等しい」という性質です。

中心極限定理(central limit theorem)

少し脱線しますが、この機会に中心極限定理と大数の弱法則についてご紹介します。

割と説明が長いのでご存知の方はスキップしていただいてOKです。

中心極限定理(Central Limit Theorem, CLT)は統計学の中でも特に重要な定理の一つであり、

まず日本語で説明すると異なる確率分布に対するサンプルの合計または平均が、サンプルサイズが十分大きくなると正規分布に近づくというものです。

数式で見ていきましょう。

\(X_1, X_2, \dots, X_n\) が独立で同一の分布に従う確率変数で、それぞれの平均を \(\mu\)、分散を \(\sigma^2 < \infty\) とします。

このとき、\(n\) が十分に大きいとき、標本平均 \(\bar{X}_n\) の分布は、平均 \(\mu\)、分散 \(\frac{\sigma^2}{n}\) の正規分布に近似的に従います。

$${\sqrt{n}(\bar{X}_n – \mu) \overset{d}{\longrightarrow} N(0, \sigma^2)}$$

\(\overset{d}{\longrightarrow}\) は分布収束を表します。

この分布収束を言い換えると、\(n\) が大きいとき、標準化された標本平均

$${Z_n = \frac{\sqrt{n}(\bar{X}_n – \mu)}{\sigma}}$$

は、標準正規分布 \(N(0, 1)\) に近似的に従います。

繰り返しになりますが、中心極限定理の嬉しい点は、元の確率変数の分布が正規分布でなくても、その和(または平均)が正規分布に収束するということです。

ただし、中心極限定理が成立するためには、以下の条件が満たされる必要があります

  1. 確率変数が独立である
  2. 確率変数が同一の分布に従う
  3. 確率変数の分散が有限である

つまり、独立性が損なわれる場合(例えば、時系列データのようにデータ点間に相関が存在する場合)には、CLTはそのままでは適用できないです。

また、中心極限定理は収束の速度について言及していないことにも注意が必要です。

収束の速度は、元の分布のモーメントに依存します。一般的に、元の分布が正規分布に近いほど、収束が速くなる傾向があります。

他にも、分散が無限大の場合や、極めて偏った分布では、正規分布への収束が遅い、または収束しないことがあります。

また、

大数の法則と中心極限定理はこちらでも解説しております。

大数の法則(weak law of large number)

さて、様々な分析で行われている、「母集団の期待値を標本平均で推定する」ことの正当性は、大数の法則によって保証されています。

日本語で説明すると、独立で同一の分布に従う確率変数の平均が、標本数を増やすことで母集団の期待値に収束することを示しています。

具体的にみていきましょう。

確率変数 \(X_1, X_2, \ldots, X_n\) が独立同一分布(iid)に従い、共通の期待値 \(E[X_i] = \mu\) と有限の分散 \(Var(X_i) = \sigma^2 < \infty\) を持つとします。

このとき、標本平均 \(\bar{X}_n\) を次のように定義します。

$${\bar{X}_n = \frac{1}{n} \sum_{i=1}^{n} X_i}$$

繰り返しになりますが、大数の法則は、標本平均 \(\bar{X}_n\) が確率収束の意味で母集団の期待値 \(\mu\)に収束することをします。

つまり、任意の正の数 \(\varepsilon > 0\)に対して、

$${\lim_{n \to \infty} P(|\bar{X}_n – \mu| < \varepsilon) = 1}$$

が成り立ちます。

これは、\(E[\bar{X}_n]\) が \(\mu\) に確率収束することを意味します。

$${E[\bar{X}_n] \overset{p}{\longrightarrow} \mu}$$

↑とりあえず、大数の法則と言われたらこれを思い浮かべてほしいです。

まあ直感的には、標本数 \(n\) を大きくすると、標本平均 \(\bar{X}_n\) のばらつきが小さくなり、母集団の期待値 \(\mu\) に近づくというのは、納得がいくのではないでしょうか。

ここからは補足ですが、大数の法則には弱法則と強法則の2つのバージョンがあります。

  1. 弱法則(Weak Law of Large Numbers; WLLN)は、上で説明した、確率収束を表しています。
  2. 強法則(Strong Law of Large Numbers; SLLN)は、より強い収束概念である概収束(almost sure convergence)を主張します。

つまり、強法則については

$${P(\lim_{n \to \infty} \bar{X}_n = \mu) = 1}$$

が成り立ちます。

これは、\(\bar{X}_n\) が \(\mu\) に概収束することを意味します。

$${\bar{X}_n \overset{a.s}{\longrightarrow} \mu}$$

さっきと何が違うんだよと思うかもしれませんが、このasというのは「ほとんど確実に収束する」ことを表しています。

つまり、\(n \to \infty\) のとき、\(\bar{X}_n\) が \(\mu\) に収束する確率が\(1\)であることを意味します。

言い換えれば、

$${P(\lim_{n \to \infty} \bar{X}_n = \mu) = 1}$$

この収束の種類を「概収束」または「almost sure convergence」と呼ぶのです。

加えて大数の弱法則とは異なり、大数の強法則とは「確率変数が独立同一な分布であれば、標本数が十分に大きいとき、標本平均と標本分散は母平均と母分散に収束する」というものです。

分散の収束についても言及されています。

クラメール・ラオの不等式(Cramér–Rao bound)

様々な不偏推定量の中では、その分散が最小となる推定量を採用したいものです。

ここで紹介する「クラメール・ラオの不等式」はそんな不偏推定量の分散の下限を与えるものです。

フィッシャー情報量を使って以下のような不等式が作れます。

これをクラメール・ラオの不等式と呼び、推定量が不偏推定量であることが条件ですが、推定誤差の期待値の下限を設定することができます。

$$E[\hat{\theta}-\theta] \geq \frac{1}{nI(\theta)}$$

一致推定量の分散が、クラメール・ラオの下限を満たす時、

つまり、推定量の誤差の期待値がサンプル数とフィッシャー情報量の積の逆数となる時、推定量は漸近有効性を持つと言います。

細かい話ですが、この時の推定量は最小分散不偏推定量と呼びます。

フィッシャー情報量の捉え方

さて、クラメール・ラオの不等式から、フィッシャー情報量の大小で推定量を評価してみます。

-フィッシャー情報量が大きい場合-

フィッシャー情報量が大きいと、誤差が小さく、θの推定精度よいです。

分散が小さくなります。

-フィッシャー情報量が小さい場合-

フィッシャー情報量が小さいと、誤差が大きく、θの推定精度が悪いです。

分散が大きくなります。

CODE(判別問題)|python

フィッシャー情報量の応用例として、機械学習における特徴量の選択について解説いたします。

今回は乳がんデータセットを使って、どの特徴量が比較的予測に重要なのかを考えます。

特徴量選択において、フィッシャー情報量は以下のような式で表されます。

パラメータ推定の場合と少し形を変えています。

$$I(x, y) = \sum_{c \in C} \sum_{v \in V} p(c, v) \log \frac{p(c, v)}{p(c)p(v)}$$

ここで、xは特徴量、yは目的変数、Cは目的変数のクラス、Vは特徴量の値の集合を表します。

p(c)はクラスcが出現する確率、p(v)は特徴量xが値vを取る確率、p(c, v)はクラスcが出現し、かつ特徴量xが値vを取る確率を表します。

この式は、特徴量と目的変数の同時分布と、それらの周辺分布を比較していることになります。

フィッシャー情報量は、特徴量xが目的変数yを予測する上での重要度を表す指標であり、値が大きいほど予測に役立つ特徴量であると言えます。

from sklearn.datasets import load_breast_cancer
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_classif
data = load_breast_cancer()
X, y = data.data, data.target
selector = SelectKBest(f_classif, k=10)
selector.fit(X, y)
selected_features = selector.get_support(indices=True)
print(data.feature_names[selected_features])
['mean radius' 'mean texture' 'mean perimeter' 'mean area' 'mean concavity'
 'radius error' 'perimeter error' 'area error' 'worst radius' 'worst perimeter']

SelectBestの引数kには、重要と判定された特徴量の出力個数を入力します。

ここでは10個にしています。乳がんデータセットの特徴量が30個くらいなので、上位1/3の重要な特徴量のみを抽出していることになります。

具体的には、フィッシャー情報量を用いた特徴量選択では、すべての特徴量についてフィッシャー情報量を計算しています。

予測に対して「重要」とは

フィッシャー情報量を用いた特徴量選択において、「重要」というのは、特徴量が目的変数と強い関係性を持っているということです。

つまり、ある特徴量が目的変数を予測する上で重要であるということは、その特徴量を使うことで予測精度が向上する可能性が高いということです。

例えば、乳がんデータセットにおいては、特定の腫瘍の大きさや形状、細胞核の形態、クロマチンの存在などの特徴量ががんの種類(良性か悪性か)を予測する上で重要であることが知られています。

フィッシャー情報量を用いた特徴量選択によって、これらの特徴量を選択することで、より正確ながんの診断が可能となります。

他にも嬉しいこととしては、重要な特徴量を選択することで、モデルの学習に必要な情報の量が減り、計算時間やメモリ使用量を削減できる場合もあります。

また、不要な特徴量を除外することで、モデルの過学習を防ぎ、汎化性能を向上させることもできます。

相関関係による特徴量の選択と何が違うのか

目的変数との相関関係とフィッシャー情報量による特徴量選択とは、微妙に異なる概念です。

-相関関係-

相関関係とは、2つの変数がどの程度同じ傾向を持っているかを表す指標です。

例えば、ある特徴量が大きくなると目的変数も大きくなる場合、これらの変数は正の相関があると言います。

逆に、ある特徴量が大きくなると目的変数が小さくなる場合、これらの変数は負の相関があると言います。

-フィッシャー情報量-

一方、フィッシャー情報量による特徴量選択は、ある特徴量が目的変数とどの程度強い関係性を持っているかを測定するための方法です。

フィッシャー情報量は、2つの確率分布がどの程度異なるかを表す指標であり、特徴量の取りうる値が目的変数を分類するための重要な情報を提供することができます。

つまり、相関関係は2つの変数の関係を表す指標であり、特徴量選択においても重要な指標ではあります。

しかしフィッシャー情報量は、特定の特徴量が目的変数と強く関連しているかどうかを評価するためのより精密な指標となります。

「どの特徴量がどれくらい重要なのか」というのは、因果関係を見る上でもとても重要な論点です。

機械学習には、大きく分けて「予測」と「識別」というタスクがありますが、今回は「識別」の話です。

以下のコンテンツでも詳しく掘り下げています。

フィッシャー情報量の応用例について

ここでは、フィッシャー情報量が何に応用されているのかを解説いたします。

フィッシャー情報量は、機械学習だけでなく、さまざまな分野で応用されています。

具体的には、以下のような応用例があります。

自然言語処理:文書分類やトピックモデルにおいて、単語の出現頻度に応じてフィッシャー情報量を計算し、重要な単語を選択することができます。

また、単語の意味を表すベクトルを生成するWord2Vecの学習にも使用されています。

遺伝子解析:遺伝子発現データの解析において、フィッシャー情報量を用いて発現に関連する遺伝子を選択することができます。

また、ゲノムワイド関連解析においても使用されています。

画像処理:画像認識において、フィッシャー情報量を用いて重要な特徴量を選択することができます。

特徴量選択によって、画像処理の計算時間を短縮することができます。

統計解析:統計解析において、フィッシャー情報量を用いて変数の重要度を評価することができます。

多重共線性を回避するために、重要な変数のみを選択することができます。

以上が、フィッシャー情報量の概要や特徴量選択の手順、そして応用例についての解説です。

機械学習やデータ分析の分野で、フィッシャー情報量は重要な役割を果たしています。

特徴量選択を行うことで、過剰適合や計算時間の増加を回避し、モデルの性能を向上させることができます。

フィッシャー情報量を適切に活用して、より高度なデータ分析を行いましょう。

補足|KL divergenceとフィッシャー情報量の関連について

少し高度な内容になりますが、KLdivergenceをご紹介します。

KLダイバージェンスは、ある確率分布が別の確率分布とどの程度異なるかを測定するための尺度です。

$$\begin{equation} D_{KL}(P || Q) = \sum_{i} P(i) \log \frac{P(i)}{Q(i)} \end{equation}$$

KLダイバージェンスは0で最小値をとり、この場合の確率分布PとQは同一です。

確率分布の尤度比の期待値を取っており、一つの確率分布を真の確率分布と仮定した場合に、別の確率分布を用いて情報を符号化するときの”情報損失”を測定しています。

機械学習の文脈では、KLダイバージェンスは真のデータ分布とモデルの分布との間の差異を測定するのにしばしば使用されます。

では、フィッシャー情報量とこのKLダイバージェンスにはどんな関係があるのでしょうか?

実はKLダイバージェンスのテイラー展開の二次項を考えると、フィッシャー情報量が現れます。

KLダイバージェンス \(D_{KL}(p(x; \theta) || q(x; \theta + \delta))\) は、パラメータ化された確率分布 \(p(x; \theta)\) と\( q(x; \theta + \delta)\)の間で、パラメータ \(θ\)の微小な変化 \(δ\) に対する感度を測定します:

$$\begin{equation} D_{KL}(p(x; \theta) || q(x; \theta + \delta)) = E_p \left[ \log \frac{p(x; \theta)}{q(x; \theta + \delta)} \right] \end{equation}$$

このKLダイバージェンスのテイラー展開の二次項を考えると、フィッシャー情報量が現れます。

$$\begin{equation} D_{KL}(p(x; \theta) || q(x; \theta + \delta)) \approx \frac{1}{2} \delta^T I(\theta) \delta \end{equation}$$

\(\delta^T I(\theta) \delta\)はフィッシャー情報行列とパラメータ変化\(\delta \)の2次形式で表されます。

この結果から、フィッシャー情報量(またはフィッシャー情報行列)はパラメータの微小な変化に対する確率分布の敏感度、すなわちKLダイバージェンスの二次の近似を表していると言えます。

とはいえ確かに関連していますが、それぞれが測定しているのは異なる概念です。

おさらいすると、

KLdivergence

ある確率分布が別の確率分布とどれだけ異なるかを測定します。
直感的には、「分布Pを用いて分布Qをどれだけよく表現できるか」を示しています。
フィッシャー情報量

パラメータの微小な変化に対する確率分布の敏感度を測定します。
フィッシャー情報量が大きいほど、パラメータの微小な変化による確率分布の変化が大きく、したがってパラメータをより正確に推定することが可能となります。

FOLLOW ME !