Rで分散の加法性のシミュレーション

統計学における分散の加法性とは、互いに独立な確率変数 \(X\)\(Y\) があるとき、それらの和 \(Z=X+Y\) の分散が、それぞれの分散の和に等しいという性質です。すなわち、

\[Var(Z)=Var(X+Y)=Var(X)+Var(Y)\]

が成り立ちます。

\(Z=X+Y\) の期待値 \(E(Z)\) は、期待値の線形性より、

\[ E(Z) = E(X + Y) = E(X) + E(Y) \]

分散の定義より、

\[ Var(Z) = E\left[\left(Z - E(Z)\right)^2\right] \]

ここで、\(Z=X+Y\)\(E(Z)=E(X)+E(Y)\) を代入すると、

\[ Var(Z) = E\left[\left(X + Y - \left(E(X) + E(Y)\right)\right)^2\right] \]

式を展開して整理すると、

\[ \begin{eqnarray} Var(Z) &=& E\left[\left((X - E(X)) + (Y - E(Y))\right)^2\right]\\ &=& E\left[\left(X - E(X)\right)^2 + 2\left(X - E(X)\right)\cdot\left(Y - E(Y)\right) + \left(Y - E(Y)\right)^2\right] \end{eqnarray} \]

期待値の線形性より、

\[ Var(Z) = E\left[\left(X - E(X)\right)^2\right] + 2E\left[\left(X - E(X)\right)\left(Y - E(Y)\right)\right] + E\left[\left(Y - E(Y)\right)^2\right] \]

\(X\)\(Y\) は互いに独立であるため右辺第二項の共分散はゼロとなり、

\[ E\left[\left(X - E(X)\right)\left(Y - E(Y)\right)\right] = E\left[X - E(X)\right]E\left[Y - E(Y)\right] = 0 \cdot 0 = 0 \]

従って、

\[ \begin{eqnarray} Var(Z) &=& E\left[\left(X - E(X)\right)^2\right] + E\left[\left(Y - E(Y)\right)^2\right]\\ &=& Var(X) + Var(Y) \end{eqnarray} \]

期待値の線形性をシミュレーションで確認します。ここでは一様分布をサンプルとします。

seed <- 20250316
set.seed(seed)

# サンプルサイズ
n <- 10000

# 確率変数XとYの生成(一様分布から生成)
X <- runif(n, 0, 10) # 0から10までの一様分布
Y <- runif(n, 0, 5) # 0から5までの一様分布

# 定数aとbの設定
a <- 2
b <- 4

# 線形結合Zの計算
Z <- a * X + b * Y

# 各変数の期待値(平均値)の計算
mean_X <- mean(X)
mean_Y <- mean(Y)
mean_Z <- mean(Z)

# 線形性の確認
linear_combination <- a * mean_X + b * mean_Y

# 結果の表示
list("E(X)" = mean_X, "E(Y)" = mean_Y, "E(Z)" = mean_Z, "aE(X) + bE(Y)" = linear_combination)
$`E(X)`
[1] 5.020608

$`E(Y)`
[1] 2.512973

$`E(Z)`
[1] 20.09311

$`aE(X) + bE(Y)`
[1] 20.09311

続いて分散の加法性をシミュレーションで確認します。ここでは正規分布をサンプルとします。

set.seed(seed)

# 確率変数XとYの生成(正規分布から生成)
X <- rnorm(n, 6, 4) # 平均6, 標準偏差4の正規分布
Y <- rnorm(n, 3, 2) # 平均3, 標準偏差2の正規分布

# 線形結合Zの計算
Z <- X + Y

# 各変数の(標本)分散の計算
var_X <- var(X) * (length(X) - 1) / length(X)
var_Y <- var(Y) * (length(Y) - 1) / length(Y)
var_Z <- var(Z) * (length(Z) - 1) / length(Z)

# 分散の加法性の確認
sum_var_XY <- var_X + var_Y

# 結果の表示
list("Var(X)" = var_X, "Var(Y)" = var_Y, "Var(Z)" = var_Z, "Var(X) + Var(Y):" = sum_var_XY, "Cov(X,Y)" = cov(data.frame(X, Y)))
$`Var(X)`
[1] 15.86906

$`Var(Y)`
[1] 3.947608

$`Var(Z)`
[1] 19.70428

$`Var(X) + Var(Y):`
[1] 19.81667

$`Cov(X,Y)`
            X           Y
X 15.87064564 -0.05619997
Y -0.05619997  3.94800234

共分散がゼロでは無いため、上で確認しました期待値のように寸分違わず一致、とはなりません(共分散の2倍分異なり、加法性が成立しません)。

内積(直交)を確認します。

print(sum(X * Y))
[1] 180730.4

以下はベクトル\(X\)をsine波、ベクトル \(Y\) をcosine波とした場合のシミュレーションです。

分散の加法性が成立しています。

# パラメータ設定
frequency <- 1 # 周波数 (Hz)
amplitude <- 1 # 振幅
phase <- 0 # 位相 (ラジアン)
num_cycles <- 1000 # 周期の数
sample_rate <- 1000 # サンプリングレート (Hz)

# 時間ベクトルの作成(周期の整数倍)
t <- seq(0, num_cycles / frequency, length.out = num_cycles * sample_rate)

# サイン波の生成
X <- amplitude * sin(2 * pi * frequency * t + phase)

# コサイン波の生成
Y <- amplitude * cos(2 * pi * frequency * t + phase)

# 線形結合Zの計算
Z <- X + Y

# 各変数の(標本)分散の計算
var_X <- var(X) * (length(X) - 1) / length(X)
var_Y <- var(Y) * (length(Y) - 1) / length(Y)
var_Z <- var(Z) * (length(Z) - 1) / length(Z)

# 分散の加法性の確認
sum_var_XY <- var_X + var_Y

# 結果の表示
list("Var(X)" = var_X, "Var(Y)" = var_Y, "Var(Z)" = var_Z, "Var(X) + Var(Y):" = sum_var_XY, "Cov(X,Y)" = cov(data.frame(X, Y)), "Inner product" = sum(X * Y))
$`Var(X)`
[1] 0.4999995

$`Var(Y)`
[1] 0.5000005

$`Var(Z)`
[1] 1

$`Var(X) + Var(Y):`
[1] 1

$`Cov(X,Y)`
              X             Y
X  5.000000e-01 -2.868172e-18
Y -2.868172e-18  5.000010e-01

$`Inner product`
[1] -2.895764e-12

最後に期待値の線形性を導出します。

\(X\)\(Y\) は確率変数であり、\(a\)\(b\) は定数であるとします。

期待値の線形性は、以下の式で表されます。

\[E(aX+bY)=aE(X)+bE(Y)\]

始めに離散型確率変数の場合です。

\(X\)\(Y\) が離散型確率変数である場合、それぞれの確率質量関数を \(P(X=x)\)\(P(Y=y)\) とします。

\(Z=aX+bY\) とすると、\(Z\) も離散型確率変数となり、その確率質量関数は \(P(Z=z)\) となります。

\(Z\) の期待値 \(E(Z)\) は、以下のように定義されます。

\[E(Z)= \displaystyle\sum_z zP(Z=z)\]

\(Z=aX+bY\) を代入すると、 \[E(aX+bY)= \displaystyle\sum_z zP(aX+bY=z)\]

ここで、同時確率質量関数 \(P(X=x,Y=y)\) を用いると、 \[E(aX+bY)= \displaystyle\sum_x\displaystyle\sum_y (ax+by)P(X=x,Y=y)\]

和の線形性より、 \[E(aX+bY)=a \displaystyle\sum_x\displaystyle\sum_y xP(X=x,Y=y) + b \displaystyle\sum_x\displaystyle\sum_y yP(X=x,Y=y)\]

周辺確率質量関数を用いると、 \[E(aX+bY)=a \displaystyle\sum_x xP(X=x) + b \displaystyle\sum_yyP(Y=y)\]

期待値の定義より、 \[E(aX+bY)=aE(X)+bE(Y)\]

続いて連続型確率変数の場合です。

\(X\)\(Y\) が連続型確率変数である場合、それぞれの確率密度関数を \(f_X(x)\)\(f_Y (y)\) とします。

\(Z=aX+bY\) とすると、\(Z\) も連続型確率変数となり、その確率密度関数は \(f_Z(z)\) となります。

\(Z\) の期待値 \(E(Z)\) は、以下のように定義されます。

\[E(Z)=\int_{-\infty}^{\infty} zf_Z(z)dz\]

\(Z=aX+bY\) を代入すると、 \[E(aX+bY)=\int_{-\infty}^{\infty} zf_{aX+bY} (z)dz\]

同時確率密度関数 \(f_{ X,Y} (x,y)\) を用いると、

\[E(aX+bY)=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}(ax+by)f_{X,Y} (x,y)dxdy\]

積分の線形性より、 \[E(aX+bY)=a\int_{-\infty}^{\infty}\int_{-\infty}^{\infty} xf_{X,Y} (x,y)dxdy + b\int_{-\infty}^{\infty}\int_{-\infty}^{\infty} yf_{ X,Y} (x,y)dxdy\]

周辺確率密度関数を用いると、 \[E(aX+bY)=a\int_{-\infty}^{\infty} xf_X (x)dx + b\int_{-\infty}^{\infty} yf_Y(y)dy\]

期待値の定義より、 \[E(aX+bY)=aE(X)+bE(Y)\]

以上です。