2つのサイコロを同時に振ったとき、1つ目の出目が6であることは2つ目の出目に何の影響も与えません。これは直感的に「独立」です。しかし、統計データを分析していると、2つの変数の相関係数が0(無相関)であるにもかかわらず、明確な関係が存在する場合があります。たとえば、$X$ が $-1, 0, 1$ の一様分布に従い、$Y = X^2$ であれば、$X$ と $Y$ の相関係数は0ですが、$Y$ は $X$ から完全に決定されています。
「独立」と「無相関」は日常的には同じ意味で使われがちですが、確率論では明確に異なる概念です。独立は無相関を含みますが、無相関は独立を保証しません。この区別を正確に理解することは、統計モデリングや機械学習の基盤となります。
独立性の概念を正しく理解すると、以下のような場面で適切な判断ができるようになります。
- 統計的検定: 観測データの独立性の仮定が妥当かどうかを評価する
- 機械学習: ナイーブベイズ分類器の「特徴量の条件付き独立」仮定の意味を理解する
- 確率モデリング: 同時分布を周辺分布の積として簡略化できるかどうかを判断する
- 実験計画: 独立なサンプリングの重要性を理解する
本記事の内容
- 独立性の直感的な理解と数学的定義
- 事象の独立性と確率変数の独立性の関係
- 独立と無相関の違い — 反例で理解する
- 相互独立とペアワイズ独立
- 条件付き独立の定義と応用
- Pythonでの可視化と数値実験
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
独立性とは — 「知っても変わらない」
日常的な直感
独立性の本質は、一方の情報を知っても、他方の確率が変わらないことです。
天気と株価の例で考えましょう。東京の今日の天気が晴れか雨かは、サンパウロの今日の気温に影響を与えません。これは独立です。一方、東京の気温と東京の湿度は独立ではないでしょう。気温が高い日は湿度も高い傾向があるからです。
独立性は「因果関係がない」こととも微妙に異なります。2つの変数に因果関係がなくても、共通の原因(交絡因子)によって統計的に関連することがあります。独立性は純粋に確率的な概念であり、一方の値を知ることが他方の確率分布を変えるかどうかだけを問うものです。
事象の独立性
まず、2つの事象の独立性を定義します。
2つの事象 $A$ と $B$ が独立(independent)であるとは、以下が成り立つことです。
$$ \begin{equation} P(A \cap B) = P(A) \cdot P(B) \end{equation} $$
$P(B) > 0$ のとき、これは $P(A|B) = P(A)$ と同値です。つまり、$B$ が起きたという情報を得ても、$A$ の確率が変わらないということです。
この定義を見てまず注意すべきは、独立性は確率 $P$ に依存する概念だということです。同じ標本空間でも、確率測度が異なれば独立性も変わり得ます。
それでは、事象の独立性を確率変数に拡張していきましょう。
確率変数の独立性
離散確率変数の独立性
2つの離散確率変数 $X$ と $Y$ が独立であるとは、全ての値 $x, y$ に対して
$$ \begin{equation} P(X = x, Y = y) = P(X = x) \cdot P(Y = y) \end{equation} $$
が成り立つことです。すなわち、同時確率質量関数が周辺確率質量関数の積に分解されるということです。
この定義が意味するのは、$X$ がどんな値を取ろうと、$Y$ の分布は変わらない(逆も同様)ということです。同時分布の表を見たとき、各セルの確率が行と列の周辺確率の積になっていれば独立です。
連続確率変数の独立性
連続確率変数の場合は、確率密度関数(PDF)を用いて定義します。
2つの連続確率変数 $X$ と $Y$ が独立であるとは、全ての $x, y$ に対して同時密度関数 $f_{X,Y}(x, y)$ が
$$ \begin{equation} f_{X,Y}(x, y) = f_X(x) \cdot f_Y(y) \end{equation} $$
と周辺密度の積に分解されることです。
累積分布関数による定義
最も一般的な定義は、累積分布関数(CDF)を用いたものです。$X$ と $Y$ が独立であるとは、全ての $x, y \in \mathbb{R}$ に対して
$$ F_{X,Y}(x, y) = F_X(x) \cdot F_Y(y) $$
が成り立つことです。この定義は離散・連続を問わず、あらゆる確率変数に適用できます。
独立性の重要な性質
独立性からは多くの有用な性質が導かれます。
期待値の積: $X$ と $Y$ が独立ならば
$$ E[XY] = E[X] \cdot E[Y] $$
分散の加法性: $X$ と $Y$ が独立ならば
$$ \text{Var}(X + Y) = \text{Var}(X) + \text{Var}(Y) $$
関数の独立性: $X$ と $Y$ が独立ならば、任意の関数 $g, h$ に対して $g(X)$ と $h(Y)$ も独立
積率母関数の積: $X$ と $Y$ が独立ならば
$$ M_{X+Y}(t) = M_X(t) \cdot M_Y(t) $$
これらの性質は、独立な確率変数の和の分布を求めるときに極めて重要です。
ここまでで独立性の定義と基本性質を理解しました。次に、独立性と混同されやすい「無相関」との違いを明確にしましょう。
独立と無相関の違い
無相関の定義
2つの確率変数 $X$ と $Y$ が無相関(uncorrelated)であるとは、共分散が0であることです。
$$ \text{Cov}(X, Y) = E[XY] – E[X]E[Y] = 0 $$
あるいは同値ですが、相関係数が0です。
$$ \rho(X, Y) = \frac{\text{Cov}(X, Y)}{\sqrt{\text{Var}(X) \text{Var}(Y)}} = 0 $$
独立 ⟹ 無相関
独立な確率変数は必ず無相関です。これは $E[XY] = E[X]E[Y]$ から直接従います。
$$ \text{Cov}(X, Y) = E[XY] – E[X]E[Y] = E[X]E[Y] – E[X]E[Y] = 0 $$
無相関 ⟹ 独立(一般には成り立たない!)
逆は一般には成り立ちません。無相関でも独立でない例が存在します。
反例: $X \sim \text{Uniform}(\{-1, 0, 1\})$(等確率で $-1, 0, 1$ のいずれかの値を取る)とし、$Y = X^2$ とします。
まず、$E[X] = (-1 + 0 + 1)/3 = 0$ です。
$E[XY] = E[X \cdot X^2] = E[X^3] = ((-1)^3 + 0^3 + 1^3)/3 = 0$
よって $\text{Cov}(X, Y) = E[XY] – E[X]E[Y] = 0 – 0 \cdot E[Y] = 0$
$X$ と $Y$ は無相関です。しかし
$$ P(Y = 0 | X = 0) = 1 \neq P(Y = 0) = \frac{1}{3} $$
$X$ の値を知ると $Y$ の確率が変わるので、$X$ と $Y$ は独立ではないのです。実際、$Y = X^2$ という完全な決定的関係があるのに相関係数は0です。
なぜこの違いが生じるのか
相関係数は線形関係しか捉えないからです。$X$ と $Y = X^2$ の関係は完全に確定的ですが、放物線状であるため線形相関係数には反映されません。
独立性は全ての関数形の関係を排除する強い条件ですが、無相関は線形関係のみを排除する弱い条件です。以下の包含関係があります。
$$ \text{独立} \subset \text{無相関} \subset \text{一般の確率変数} $$
例外: 正規分布の場合
2次元正規分布に従う確率変数 $(X, Y)$ の場合は、無相関と独立が同値になります。
$$ (X, Y) \sim N\left(\bm{\mu}, \bm{\Sigma}\right) \text{ のとき: } \rho = 0 \iff X \perp Y $$
これは正規分布の同時密度関数が $\rho$ だけで完全に特徴づけられることから従います。$\rho = 0$ のとき、同時密度が周辺密度の積に分解されるのです。
この特殊な性質があるため、正規分布を仮定する多くの統計手法では「無相関」と「独立」を区別する必要がありません。しかし、非正規分布を扱うときはこの区別が重要になります。
独立と無相関の違いを理解したところで、次にもう一つ紛らわしい概念 — 相互独立とペアワイズ独立 — の違いを見ていきましょう。
相互独立とペアワイズ独立
定義
3つ以上の確率変数の独立性には、2つのレベルがあります。
ペアワイズ独立(pairwise independence): 確率変数 $X_1, X_2, \ldots, X_n$ がペアワイズ独立であるとは、全ての $i \neq j$ に対して $X_i$ と $X_j$ が独立であることです。
$$ P(X_i \in A, X_j \in B) = P(X_i \in A) \cdot P(X_j \in B) \quad \forall i \neq j $$
相互独立(mutual independence): 確率変数 $X_1, X_2, \ldots, X_n$ が相互独立であるとは、任意の部分集合 $\{i_1, \ldots, i_k\} \subseteq \{1, \ldots, n\}$ に対して
$$ P(X_{i_1} \in A_1, \ldots, X_{i_k} \in A_k) = \prod_{j=1}^{k} P(X_{i_j} \in A_j) $$
が成り立つことです。
ペアワイズ独立だが相互独立でない例
相互独立はペアワイズ独立を含みますが、逆は成り立ちません。
反例: 2つの公平なコインを独立に投げ、結果を $X_1$(1枚目が表なら1、裏なら0)、$X_2$(2枚目が表なら1、裏なら0)とします。$X_3 = X_1 \oplus X_2$(排他的論理和、つまり2つが異なれば1、同じなら0)とします。
各 $X_i$ は $P(X_i = 0) = P(X_i = 1) = 1/2$ を満たします。
任意の2つを取ると、ペアワイズ独立が確認できます。たとえば
$$ P(X_1 = 1, X_3 = 1) = P(X_1 = 1, X_2 = 0) = \frac{1}{4} = P(X_1 = 1) \cdot P(X_3 = 1) = \frac{1}{2} \cdot \frac{1}{2} $$
しかし
$$ P(X_1 = 1, X_2 = 1, X_3 = 0) = \frac{1}{4} \neq P(X_1 = 1) P(X_2 = 1) P(X_3 = 0) = \frac{1}{8} $$
$X_1$ と $X_2$ がわかれば $X_3$ は完全に決まるので、3つは相互独立ではありません。
確認すべき条件の数
$n$ 個の確率変数の相互独立を確認するには、$\binom{n}{2} + \binom{n}{3} + \cdots + \binom{n}{n} = 2^n – n – 1$ 個の条件を検証する必要があります。ペアワイズ独立は $\binom{n}{2}$ 個の条件で済みますが、相互独立の保証にはなりません。
実用的には、多くの統計手法(大数の法則、中心極限定理など)はペアワイズ独立(または無相関)で十分成り立つため、相互独立の完全な検証が不要な場合もあります。
次に、独立性の条件付きバージョン — 条件付き独立 — を見ていきましょう。
条件付き独立
定義と動機
2つの確率変数 $X$ と $Y$ は、$Z$ が与えられたもとで条件付き独立(conditionally independent)であるとは
$$ \begin{equation} P(X \in A, Y \in B | Z = z) = P(X \in A | Z = z) \cdot P(Y \in B | Z = z) \end{equation} $$
が全ての $z$($P(Z = z) > 0$ であるもの)に対して成り立つことです。$X \perp Y | Z$ と書きます。
交絡因子と条件付き独立
条件付き独立が重要になる典型的な場面は、交絡因子(confounding variable)の存在です。
たとえば、アイスクリームの売上 $X$ と水難事故の件数 $Y$ は正の相関を持つかもしれません($X \not\perp Y$)。しかし、これはアイスクリームが事故を引き起こしているのではなく、気温 $Z$ という共通原因があるためです。気温を固定すれば($Z = z$ を条件として)、アイスクリームの売上と水難事故は独立になるでしょう($X \perp Y | Z$)。
独立と条件付き独立は無関係
重要な注意点として
- 独立だが条件付き独立でない場合がある
- 条件付き独立だが独立でない場合がある
独立 → 条件付き独立が成り立たない例(バークソンのパラドクス): 2つの独立な病気 $A$ と $B$ があり、それぞれの有病率は低いとします。病院に来た人($C$ = 少なくとも1つの病気を持っている)を条件にすると、$A$ と $B$ は負の相関を持ちます。$A$ でないことがわかると $B$ である確率が上がるからです。
条件付き独立 → 独立が成り立たない例: 先ほどのアイスクリームと水難事故の例です。気温で条件づけると独立ですが、条件づけない場合は独立ではありません。
ナイーブベイズの仮定
機械学習で広く使われるナイーブベイズ分類器は、特徴量 $X_1, \ldots, X_d$ がクラスラベル $C$ のもとで条件付き独立であるという「ナイーブ」な仮定を置きます。
$$ P(X_1, \ldots, X_d | C) = \prod_{i=1}^{d} P(X_i | C) $$
この仮定により、高次元の同時分布を推定する問題が1次元の周辺分布の推定に帰着し、計算が劇的に簡単になります。仮定が厳密には成り立たない場合でも、分類精度が驚くほど良好であることが多いのは、ナイーブベイズの興味深い性質です。
それでは、ここまでの理論をPythonで確認していきましょう。
Pythonでの実装と可視化
独立と無相関の違いの可視化
まず、独立だが無相関 vs 無相関だが非独立を具体的に可視化します。
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
np.random.seed(42)
n = 10000
fig, axes = plt.subplots(2, 3, figsize=(16, 10))
# --- 行1: 独立(かつ無相関)の例 ---
# (a) 独立な正規分布
X1 = np.random.normal(0, 1, n)
Y1 = np.random.normal(0, 1, n)
ax = axes[0, 0]
ax.scatter(X1, Y1, alpha=0.1, s=5, color='steelblue')
ax.set_title(f'Independent Normal\n'
f'Corr = {np.corrcoef(X1, Y1)[0,1]:.4f}', fontsize=12)
ax.set_xlabel('X', fontsize=11)
ax.set_ylabel('Y', fontsize=11)
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
ax.grid(True, alpha=0.3)
# (b) 独立な一様分布
X2 = np.random.uniform(-1, 1, n)
Y2 = np.random.uniform(-1, 1, n)
ax = axes[0, 1]
ax.scatter(X2, Y2, alpha=0.1, s=5, color='steelblue')
ax.set_title(f'Independent Uniform\n'
f'Corr = {np.corrcoef(X2, Y2)[0,1]:.4f}', fontsize=12)
ax.set_xlabel('X', fontsize=11)
ax.set_ylabel('Y', fontsize=11)
ax.grid(True, alpha=0.3)
# (c) 同時分布が周辺分布の積に一致することを確認
ax = axes[0, 2]
# 2次元ヒストグラムと周辺分布の積を比較
H_joint, xedges, yedges = np.histogram2d(X1, Y1, bins=20, density=True)
H_x, _ = np.histogram(X1, bins=xedges, density=True)
H_y, _ = np.histogram(Y1, bins=yedges, density=True)
H_product = np.outer(H_x, H_y)
# 差を可視化
diff = H_joint - H_product
im = ax.imshow(diff.T, origin='lower', cmap='RdBu_r', vmin=-0.01, vmax=0.01,
extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])
plt.colorbar(im, ax=ax, label='f(x,y) - f(x)f(y)')
ax.set_title('Joint - Product (Independent)\nShould be ~0 everywhere',
fontsize=11)
ax.set_xlabel('X', fontsize=11)
ax.set_ylabel('Y', fontsize=11)
# --- 行2: 無相関だが非独立の例 ---
# (d) X ~ Uniform{-1,0,1}, Y = X^2
X3 = np.random.choice([-1, 0, 1], n)
Y3 = X3**2
ax = axes[1, 0]
# ジッターを追加して可視化
jitter_x = X3 + np.random.normal(0, 0.05, n)
jitter_y = Y3 + np.random.normal(0, 0.05, n)
ax.scatter(jitter_x, jitter_y, alpha=0.1, s=5, color='red')
ax.set_title(f'Uncorrelated but Dependent\n'
f'X~Uniform{{-1,0,1}}, Y=X²\n'
f'Corr = {np.corrcoef(X3, Y3)[0,1]:.4f}', fontsize=11)
ax.set_xlabel('X', fontsize=11)
ax.set_ylabel('Y', fontsize=11)
ax.grid(True, alpha=0.3)
# (e) 円上の分布(無相関だが非独立)
theta = np.random.uniform(0, 2*np.pi, n)
X4 = np.cos(theta) + np.random.normal(0, 0.05, n)
Y4 = np.sin(theta) + np.random.normal(0, 0.05, n)
ax = axes[1, 1]
ax.scatter(X4, Y4, alpha=0.1, s=5, color='red')
ax.set_title(f'Uncorrelated but Dependent\n'
f'Circle distribution\n'
f'Corr = {np.corrcoef(X4, Y4)[0,1]:.4f}', fontsize=11)
ax.set_xlabel('X', fontsize=11)
ax.set_ylabel('Y', fontsize=11)
ax.set_aspect('equal')
ax.grid(True, alpha=0.3)
# (f) 同時分布 ≠ 周辺分布の積を確認
ax = axes[1, 2]
H_joint2, xedges2, yedges2 = np.histogram2d(X4, Y4, bins=20, density=True)
H_x2, _ = np.histogram(X4, bins=xedges2, density=True)
H_y2, _ = np.histogram(Y4, bins=yedges2, density=True)
H_product2 = np.outer(H_x2, H_y2)
diff2 = H_joint2 - H_product2
im2 = ax.imshow(diff2.T, origin='lower', cmap='RdBu_r', vmin=-0.3, vmax=0.3,
extent=[xedges2[0], xedges2[-1], yedges2[0], yedges2[-1]])
plt.colorbar(im2, ax=ax, label='f(x,y) - f(x)f(y)')
ax.set_title('Joint - Product (Dependent)\nClearly non-zero pattern',
fontsize=11)
ax.set_xlabel('X', fontsize=11)
ax.set_ylabel('Y', fontsize=11)
plt.tight_layout()
plt.savefig('independence_vs_uncorrelated.png', dpi=150, bbox_inches='tight')
plt.show()
このグラフから、独立と無相関の本質的な違いが視覚的に理解できます。
-
上段(独立なケース): 正規分布(左)と一様分布(中央)はともに独立で、散布図に特定のパターンは見られません。右図の「同時密度 – 周辺密度の積」はほぼ0であり、$f(x,y) = f(x)f(y)$ が成り立っていることを確認できます。
-
下段左($Y = X^2$): 相関係数は0.0000にもかかわらず、$X$ の値が決まれば $Y$ は完全に決まるという決定的な関係(放物線)があります。相関係数がこの非線形関係を全く検出できないことがわかります。
-
下段中央(円上の分布): こちらも相関係数はほぼ0ですが、明確な円形のパターンが存在します。$X$ と $Y$ は強い依存関係にあります。下段右の差分マップでは、同時密度と周辺密度の積の差が明確な非零パターンを示しており、独立でないことが確認できます。
正規分布での「無相関 = 独立」の確認
正規分布では無相関と独立が同値であることを確認します。
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
np.random.seed(42)
n = 5000
# 異なる相関を持つ2次元正規分布
correlations = [0.0, 0.3, 0.7, 0.95]
fig, axes = plt.subplots(2, 4, figsize=(16, 8))
for idx, rho in enumerate(correlations):
# 2次元正規分布からサンプリング
mean = [0, 0]
cov = [[1, rho], [rho, 1]]
data = np.random.multivariate_normal(mean, cov, n)
X, Y = data[:, 0], data[:, 1]
# 上段: 散布図
ax = axes[0, idx]
ax.scatter(X, Y, alpha=0.1, s=5, color='steelblue')
ax.set_title(f'$\\rho$ = {rho}', fontsize=13)
ax.set_xlabel('X', fontsize=11)
ax.set_ylabel('Y', fontsize=11)
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
ax.set_aspect('equal')
ax.grid(True, alpha=0.3)
# 下段: f(x,y) - f(x)f(y) の差
ax = axes[1, idx]
H_joint, xedges, yedges = np.histogram2d(X, Y, bins=25, density=True)
H_x, _ = np.histogram(X, bins=xedges, density=True)
H_y, _ = np.histogram(Y, bins=yedges, density=True)
H_product = np.outer(H_x, H_y)
diff = H_joint - H_product
vmax = max(0.05, np.max(np.abs(diff)))
im = ax.imshow(diff.T, origin='lower', cmap='RdBu_r',
vmin=-vmax, vmax=vmax,
extent=[xedges[0], xedges[-1], yedges[0], yedges[-1]])
plt.colorbar(im, ax=ax, shrink=0.8)
ax.set_title(f'f(x,y) - f(x)f(y)', fontsize=11)
ax.set_xlabel('X', fontsize=11)
ax.set_ylabel('Y', fontsize=11)
plt.suptitle('Bivariate Normal: Uncorrelated = Independent ($\\rho$=0)',
fontsize=14, y=1.02)
plt.tight_layout()
plt.savefig('normal_uncorrelated_independent.png', dpi=150, bbox_inches='tight')
plt.show()
この可視化から、正規分布における独立性の特殊な性質が読み取れます。
-
$\rho = 0$ のとき: 散布図は円形で偏りがなく、差分マップもほぼ0です。同時密度が周辺密度の積に一致しており、無相関 = 独立が確認できます。
-
$\rho > 0$ のとき: $\rho$ が大きくなるにつれて散布図は楕円形に歪み、差分マップには明確な四つ葉パターンが現れます。これは同時密度と周辺密度の積が一致しないことを示しており、相関がある = 独立でないことがわかります。
-
正規分布の特殊性: 正規分布では $\rho$ という1つのパラメータが依存構造を完全に決定するため、$\rho = 0$ が独立の必要十分条件になります。非正規分布ではこの性質は一般に成り立ちません。
条件付き独立のシミュレーション
交絡因子による疑似相関と条件付き独立を可視化します。
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(42)
n = 3000
# 交絡因子 Z(気温)
Z = np.random.normal(25, 5, n) # 平均25度、標準偏差5度
# X(アイスクリーム売上): Zに依存 + ノイズ
X = 3 * Z + np.random.normal(0, 10, n)
# Y(水難事故): Zに依存 + ノイズ
Y = 0.5 * Z + np.random.normal(0, 3, n)
fig, axes = plt.subplots(1, 3, figsize=(16, 5))
# (a) X vs Y(周辺的に相関あり)
ax = axes[0]
ax.scatter(X, Y, alpha=0.15, s=10, color='steelblue')
corr_marginal = np.corrcoef(X, Y)[0, 1]
ax.set_xlabel('Ice cream sales (X)', fontsize=11)
ax.set_ylabel('Drowning incidents (Y)', fontsize=11)
ax.set_title(f'Marginal: Corr(X,Y) = {corr_marginal:.3f}\n(Not Independent)',
fontsize=12)
ax.grid(True, alpha=0.3)
# (b) X vs Y | Z ∈ [23, 27](条件付き:ほぼ無相関)
ax = axes[1]
mask = (Z >= 23) & (Z <= 27)
ax.scatter(X[mask], Y[mask], alpha=0.2, s=10, color='coral')
if np.sum(mask) > 2:
corr_cond = np.corrcoef(X[mask], Y[mask])[0, 1]
else:
corr_cond = 0
ax.set_xlabel('Ice cream sales (X)', fontsize=11)
ax.set_ylabel('Drowning incidents (Y)', fontsize=11)
ax.set_title(f'Conditional: Corr(X,Y|Z∈[23,27]) = {corr_cond:.3f}\n'
f'(Approx. Independent | Z)', fontsize=12)
ax.grid(True, alpha=0.3)
# (c) 温度ごとの条件付き相関
ax = axes[2]
z_centers = np.arange(12, 39, 2)
cond_corrs = []
for zc in z_centers:
mask_z = (Z >= zc - 2) & (Z < zc + 2)
if np.sum(mask_z) > 10:
cond_corrs.append(np.corrcoef(X[mask_z], Y[mask_z])[0, 1])
else:
cond_corrs.append(np.nan)
ax.bar(z_centers, cond_corrs, width=3, color='teal', alpha=0.7, edgecolor='gray')
ax.axhline(0, color='black', linewidth=1)
ax.axhline(corr_marginal, color='red', linestyle='--', linewidth=1.5,
alpha=0.7, label=f'Marginal corr = {corr_marginal:.3f}')
ax.set_xlabel('Temperature Z (°C)', fontsize=11)
ax.set_ylabel('Conditional Correlation', fontsize=11)
ax.set_title('Corr(X, Y | Z) by Temperature Range', fontsize=12)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3, axis='y')
plt.tight_layout()
plt.savefig('conditional_independence.png', dpi=150, bbox_inches='tight')
plt.show()
この可視化から、条件付き独立と交絡因子の関係が明確に読み取れます。
-
左図(周辺的な相関): アイスクリーム売上と水難事故の間には、かなり強い正の相関(約0.7)が見られます。しかし、これは因果関係ではなく、気温という交絡因子による疑似相関です。
-
中央図(条件付き): 気温を23-27度に限定すると、相関はほぼ0になります。気温が固定されれば、アイスクリーム売上と水難事故は(近似的に)条件付き独立です。
-
右図(温度ごとの条件付き相関): 各温度帯での条件付き相関は0付近にばらついており、周辺相関(赤い破線)とは大きく異なります。全ての温度帯で条件付き相関がほぼ0であることが、$X \perp Y | Z$ の主張を支持しています。
まとめ
本記事では、確率変数の独立性の定義から、無相関との違い、条件付き独立まで解説しました。
- 独立とは $P(X \in A, Y \in B) = P(X \in A) P(Y \in B)$ が全ての事象で成り立つことであり、一方の情報が他方の確率分布を全く変えないことを意味する
- 独立ならば無相関だが、無相関でも独立とは限らない — $Y = X^2$ の例が示すように、非線形な関係は相関係数に反映されない
- 正規分布に限り、無相関と独立は同値である
- 相互独立はペアワイズ独立より強い条件であり、XOR の例のようにペアワイズ独立だが相互独立でない場合がある
- 条件付き独立($X \perp Y | Z$)は独立性とは別の概念であり、交絡因子の存在やナイーブベイズの仮定で重要な役割を果たす
次のステップとして、以下の記事も参考にしてください。
- 共分散と相関係数 — 無相関の定量的な測定
- 同時分布・周辺分布・条件付き分布 — 独立性を同時分布の観点から理解する
- 大数の法則 — 独立性が果たす役割