相互情報量の計算方法は?公式や求め方も!(同時確率:周辺確率:対数:具体例など)
相互情報量の計算方法は?公式や求め方も!(同時確率:周辺確率:対数:具体例など)
相互情報量は、2つの確率変数がどの程度関連しているかを、情報理論の考え方で数値化する指標です。
機械学習の特徴量選択、統計解析、自然言語処理、通信分野などで使われますが、公式だけを見ると難しく感じるかもしれません。
ただし、同時確率と周辺確率を整理してから対数を計算する流れを押さえれば、具体例でも落ち着いて求められます。
この記事では相互情報量の意味、公式、離散確率の計算手順、連続値の扱い、結果を読む際の注意点までを順番に解説します。
相互情報量の計算結果と基本的な考え方

それではまず相互情報量の計算結果と基本的な考え方について解説していきます。
不確実性の減少量
相互情報量とは、一方の変数を知ることで、もう一方の変数に関する不確実性がどれだけ減るかを表す量です。
たとえば天気と傘の利用を考えた場合、雨という情報を知れば、傘を持つ可能性を予測しやすくなります。
このように、片方の情報がもう片方の予測に役立つほど、相互情報量は大きくなります。
反対に、2つの変数がまったく独立していれば、片方を見てももう片方への理解は進みません。
独立の場合の相互情報量は、理論上は0になります。
相互情報量は相関係数とは異なり、直線的ではない関係も捉えられる点が大きな特徴です。
値の大きさと単位
対数の底を2にした場合、相互情報量の単位はビットです。
自然対数を使う場合はナットと呼ばれます。
実務では対数の底を2にするケースが多く、情報量を何ビット得られたかという形で解釈します。
相互情報量は原則として負になりません。
0に近い値なら関連は弱く、数値が大きいほど情報の共有が多いと考えられます。
ただし、異なるデータセット同士で単純に大小を比べると、変数の分類数や分布の偏りの影響を受けるため注意が必要です。
確率変数の組み合わせ
相互情報量は、確率変数Xと確率変数Yの組み合わせについて計算します。
Xが購入の有無、Yが広告閲覧の有無というように、どちらもカテゴリである離散変数では表を使って計算できます。
年齢や温度のような連続変数でも計算できますが、その場合は確率密度関数や推定方法を用います。
初めて計算する際は、値の組み合わせを数えられる離散型の例から始めると理解しやすいでしょう。
相互情報量は、Xを知った後のYの不確実性の減少量であり、Yを知った後のXの不確実性の減少量でもあります。
そのため、相互情報量はXとYを入れ替えても同じ値になります。
相互情報量の公式と構成要素
続いては相互情報量の公式と構成要素を確認していきます。
離散型の基本公式
離散確率変数XとYの相互情報量は、すべての値の組み合わせについて計算した値を合計して求めます。
I(X,Y)=Σ p(x,y)log2{p(x,y)/[p(x)p(y)]}
Σは、取り得るxとyの全組み合わせについて加算する記号です。
p(x,y)はXがxかつYがyとなる同時確率です。
p(x)はXがxとなる周辺確率であり、p(y)はYがyとなる周辺確率を意味します。
公式の中心にある比率は、実際に同時に起きた確率と、独立だと仮定した場合に期待される確率との差を示します。
同時確率と周辺確率
同時確率は、2つの事象が同時に起こる割合です。
たとえば100件の観測のうち、広告を見て購入した人が30人なら、その組み合わせの同時確率は0.30です。
周辺確率は、一方の変数だけに注目した割合です。
広告を見た人が50人なら広告閲覧の周辺確率は0.50となり、購入者が40人なら購入の周辺確率は0.40になります。
この場合、独立なら広告閲覧と購入が同時に起こる確率は0.50に0.40を掛けた0.20と見込まれます。
実際の同時確率が0.30なら、独立と考えた場合よりも同時発生が多いことになります。
対数項の役割
公式に含まれる対数は、確率の比率を情報量として扱うために必要です。
同時確率が周辺確率の積より大きいとき、比率は1より大きくなり、対数も正になります。
これは、その組み合わせが独立の場合より起こりやすく、有用な結び付きがあることを表します。
一方で、ある組み合わせだけを見ると対数項が負になることもあります。
しかし、全組み合わせを確率で重み付けして合計した相互情報量全体は負になりません。
| 要素 | 意味 | 計算時の確認点 |
|---|---|---|
| p(x,y) | XとYが同時に起こる確率 | クロス集計表のセルを全件数で割る |
| p(x) | Xだけに注目した周辺確率 | 行または列の合計を全件数で割る |
| p(y) | Yだけに注目した周辺確率 | もう一方の方向の合計を使用する |
| 対数比 | 独立仮定との差 | 対数の底を途中で変更しない |
| 加重値 | 確率を反映した各組み合わせの寄与 | 同時確率を必ず掛ける |
同時確率と周辺確率による計算手順
続いては同時確率と周辺確率による計算手順を確認していきます。
クロス集計表の作成
離散データの相互情報量は、最初にXとYのクロス集計表を作成します。
行にXの分類、列にYの分類を置き、それぞれの組み合わせに該当する件数を入れます。
行合計と列合計を出すことで、周辺確率の計算に必要な値も同時に得られます。
欠損値を含めるか除外するかは、分析目的に応じて事前に決めておくことが大切です。
集計対象が変われば確率分布も変わるため、欠損値の扱いは計算前に固定する必要があります。
各セルの情報量
各セルでは、同時確率を周辺確率の積で割ります。
その値の対数を取り、さらに同時確率を掛けることで、その組み合わせが相互情報量へ与える寄与を求めます。
セルの件数が0の場合、同時確率も0です。
0に対する対数は計算できませんが、確率0のセルが相互情報量に与える寄与は0として扱います。
表計算ソフトで作業する場合は、0のセルでエラーが出ないよう条件式を設定すると安全です。
全セルの合計
最後に、すべてのセルの寄与を合計すると相互情報量になります。
一部のセルだけが強く関連していても、ほかのセルの寄与を含めて全体で評価する点が重要です。
特定の組み合わせを詳しく調べたい場合は、相互情報量の合計だけでなく、各セルの対数比も確認します。
どの組み合わせが関連を生んでいるのかを把握しやすくなるでしょう。
計算の順序は、件数の集計、同時確率の算出、周辺確率の算出、各セルの寄与の計算、全セルの合計です。
途中で丸めると誤差が蓄積しやすいため、表示用に整えるまでは小数点以下を保持します。
具体例による相互情報量の求め方
続いては具体例による相互情報量の求め方を確認していきます。
広告閲覧と購入の集計例
100人について、広告閲覧の有無と購入の有無を調べたとします。
広告を見て購入した人は30人、広告を見て購入しなかった人は20人とします。
広告を見ずに購入した人は10人、広告を見ずに購入しなかった人は40人です。
| 広告閲覧 | 購入あり | 購入なし | 合計 |
|---|---|---|---|
| あり | 30 | 20 | 50 |
| なし | 10 | 40 | 50 |
| 合計 | 40 | 60 | 100 |
広告閲覧ありかつ購入ありの同時確率は0.30です。
広告閲覧ありの周辺確率は0.50であり、購入ありの周辺確率は0.40となります。
一つの組み合わせの計算
広告閲覧ありかつ購入ありのセルでは、独立を仮定した確率は0.50に0.40を掛けた0.20です。
実際の同時確率0.30を0.20で割ると1.5になります。
0.30×log2(1.5)
この値が、広告閲覧ありかつ購入ありという組み合わせの寄与です。
比率が1.5であるため対数は正となり、このセルは全体の相互情報量を増やします。
広告を見て購入する行動が、独立の場合より多いことが数式上でも確認できます。
相互情報量は因果関係を証明する数値ではないため、広告が購入を必ず引き起こしたとは断定できません。
残りの組み合わせの合計
広告閲覧ありかつ購入なしでは、同時確率は0.20です。
周辺確率の積は0.50に0.60を掛けた0.30となるため、このセルの対数項は負になります。
広告閲覧なしと購入あり、広告閲覧なしと購入なしについても同じ方法で計算します。
4つの寄与を合計した結果が、この2変数の相互情報量です。
正の寄与と負の寄与が混在しても、全体では0以上の値に収まります。
計算結果が0に近い場合は、広告閲覧の情報を知っても購入の予測精度があまり上がらない状態です。
値が大きい場合は、閲覧状況が購入状況を知る手掛かりになっていると解釈できます。
エントロピーと条件付きエントロピーの関係
続いてはエントロピーと条件付きエントロピーの関係を確認していきます。
エントロピーの意味
エントロピーは、1つの確率変数が持つ不確実性を表す指標です。
結果がほぼ決まっている変数は不確実性が小さく、複数の結果が同じ程度に起こる変数は不確実性が大きくなります。
購入の有無が常に購入なしなら、購入という変数のエントロピーは非常に小さくなります。
購入ありと購入なしが半々に近い場合は、事前には予測しにくく、エントロピーは大きくなるでしょう。
条件付きエントロピーの意味
条件付きエントロピーは、Xを知った後でも残るYの不確実性です。
広告閲覧を知ることで購入の予測がしやすくなるなら、広告閲覧を条件とした購入のエントロピーは低下します。
この低下分が相互情報量に相当します。
相互情報量は、元の不確実性から条件付きの不確実性を差し引いた量として理解すると、公式の意味が見えやすくなります。
I(X,Y)=H(Y)-H(Y|X)
H(Y)はYのエントロピーであり、H(Y|X)はXを知った後に残るYの条件付きエントロピーです。
対称性と情報共有
相互情報量は、I(X,Y)とI(Y,X)が同じになる対称的な指標です。
広告閲覧から購入をどれだけ知れるかと、購入から広告閲覧をどれだけ知れるかは、情報量としては等しくなります。
ただし、分析上の目的まで対称とは限りません。
売上予測を行うなら購入を目的変数とし、広告閲覧を説明に使うというように、実務では役割を分けて考えます。
実務での利用場面と注意点
続いては実務での利用場面と注意点を確認していきます。
特徴量選択への活用
機械学習では、目的変数と各特徴量の相互情報量を比較し、予測に役立ちそうな項目を探します。
線形相関では見落としやすい非線形の関係も扱えるため、前処理の候補選びに向いています。
ただし、相互情報量が高い特徴量同士が似た情報を持っている場合もあります。
そのため、目的変数との関連だけでなく、特徴量同士の重複も確認すると精度改善につながります。
連続変数の扱い
年齢、売上金額、滞在時間のような連続変数では、単純な件数表だけでは確率を求められません。
区間に分けて離散化する方法、近傍法による推定、カーネル密度推定などが利用されます。
離散化は分かりやすい反面、区切り方によって計算結果が変わります。
区間数を増やし過ぎると、データが少ないセルが増え、偶然の偏りを拾いやすくなります。
分析目的とサンプル数に合わせて、推定方法を選ぶことが重要です。
解釈時の注意点
相互情報量が大きくても、原因と結果の関係を直接示すわけではありません。
第三の要因によって2つの変数が同時に変化している可能性もあります。
また、分類数の多い変数は偶然でも相互情報量が大きく見えやすい場合があります。
カテゴリ数が異なる変数を比較する場合は、正規化相互情報量や検証用データでの再現性も確認するとよいでしょう。
相互情報量は関連性を見つけるための有効な入口です。
最終判断では、サンプル数、業務上の意味、因果の仮説、別データでの検証を組み合わせることが欠かせません。
まとめ
相互情報量は、2つの確率変数が共有する情報の量を表す指標です。
離散データでは、同時確率を周辺確率の積で割り、その対数に同時確率を掛けた値を全組み合わせで合計します。
計算の要点は、同時確率、周辺確率、対数比、全セルの合計という4つの流れです。
独立している場合の相互情報量は0であり、値が大きいほど片方の情報がもう片方の予測に役立ちます。
具体例ではクロス集計表を作り、各セルの寄与を順に計算すると公式の意味を確かめやすくなります。
特徴量選択やデータ分析に利用する際は、相互情報量だけで因果関係を判断しないことも大切です。
確率分布の作り方とデータの背景を確認しながら使うことで、相互情報量を実践的な分析へ生かせるでしょう。