F 検定

F 検定は 2 つの実験群のデータの分散が等しいかどうかを検定する方法である。2 つの実験群の母集団が正規分布に従う必要がある。

2 つの実験群が互いに独立しているとき、2 つの実験群のデータから求められる標本不偏分散\( \hat{\sigma}^{2}_{1},\hat{\sigma}^{2}_{2} \)は、両者の比は自由度n1-1、n2-1 の F 分布に従うことが知られている。すなわち、

\[ F_{0}=\frac{\hat{\sigma}^{2}_{1}}{\hat{\sigma}^{2}_{2}} \sim F(n_{1}-1,n_{2}-1;\alpha)\]

F0>F(n1-1,n2-1;α) ならば両者の分散が同じでない、F0≤F(n1-1,n2-1;α) ならば両者の分散が同じである、判定できる。

F 検定 (R)

R では var.test を利用して F 検定を行う。

x <- c(10, 23, 19, 14, 41, 33, 36, 31, 50)
y <- c(14, 84, 44, 11, 36, 71, 34, 54, 61)

var.test(x, y)
## 
## 	F test to compare two variances
## 
## data:  x and y
## F = 0.28322, num df = 8, denom df = 8, p-value = 0.09328
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.06388415 1.25556580
## sample estimates:
## ratio of variances
##           0.283215

「alternative hypothesis: true ratio of variances is not equal to 1」、つまり、対立仮説は「両サンプルの不偏分散の比が 1 でない( = 両者の分散が異なる)」である。帰無仮説は両サンプルの不偏分散の比が 1 である。この帰無仮説に対して、F 統計量 = 0.28322 は 帰無仮説の 95% 信頼区間(0.06~1.26)に含まれているため、帰無仮説を棄却することはできない。すなわち、危険率 5% のとき、x と y の分散に有意差が存在しない。

F 検定 (Python)

Python の SciPy モジュールには、F 検定を行う直接に行うメソッドはない。

import numpy as np
from scipy import stats

x = np.array([10, 23, 19, 14, 41, 33, 36, 31, 50])
y = np.array([14, 84, 44, 11, 36, 71, 34, 54, 61])

f = np.var(x) / np.var(y)
f
## 0.28321502175406454

dfx = len(x) - 1
dfy = len(y) - 1
stats.f.cdf(f, dfx, dfy)
## 0.046638962563471921