【社会情報処理】第6回 その他の仮説検定

母分散の仮説検定

ここでは母分散の仮説検定を行う。

母集団は正規分布(正規母集団)とし、そこから無作為に標本を抽出する。 $\mathrm{N}(\mu,\sigma^{2})$ の正規母集団から $n$ 個の標本 $X_{1},X_{2},\cdots,X_{n}$ を抽出したとする。

母分散の仮説検定に用いる検定統計量は不偏分散 $s^{2}$ を利用する。 \[ s^{2}=\frac{1}{n-1}\sum_{i=1}^{n}(X_{i}-\bar{X})^{2} \]


仮説検定の手順

仮説検定の手順は以下の通り。

1. 仮説の設定

2. 検定統計量と標本分布の決定

検定統計量は $\chi^{2}$(カイ二乗)である。 \[ \chi^{2}=\frac{(n-1)s^{2}}{\sigma_{0}^{2}} \] 正規母集団からの標本であれば $\chi^{2}$ は自由度 $n-1$ の $\chi^{2}$ 分布 $\chi^{2}(n-1)$ に従う。

3. 有意水準と棄却域の決定

有意水準を $\alpha$ とする。 棄却域 $R$ はそれぞれ次のようになる。

$\chi_{\alpha}^{2}$ は $\chi^{2}(n-1)$ の上側確率 $\alpha$ のパーセント点である。

カイ二乗検定

4. 検定の実施

標本から求めた検定統計量が棄却域に入れば帰無仮説を棄却し、対立仮説を採択する。 棄却域に入らなければ帰無仮説は棄却されないので、対立仮説は採択されない。

検定統計量に $\chi^{2}$ を用いる場合をカイ二乗検定という。

母分散の仮説検定の例

母集団は R のデータセット airquality の Wind とする。 これを正規母集団とみなす。

> var(airquality$Wind) * (1 - 1 / length(airquality$Wind))
[1] 12.33042

このように母分散 $\sigma^{2}=12.33042\mathrm{[mph^{2}]}$ と分かるが、分かっていないものとして仮説検定を行う。

母集団から $n=10$ 個の標本を抽出し、$\sigma_{0}^{2}=4$ の仮説検定を行う。 次のプログラム test_var.R はカイ二乗検定で p 値を計算するプログラムである。 ただし、標本抽出は set.seed(1) で固定しているので、毎回ランダムにしたければ set.seed(1) を削除すること。

test_var.R
  1. # 母分散の仮説検定(カイ二乗検定)
  2.  
  3. # 母集団データ
  4. pdata <- na.omit(airquality$Wind)
  5.  
  6. # 標本データ
  7. n <- 10
  8. sdata <- sample(pdata, n)
  9.  
  10. # 不偏分散
  11. ssq <- var(sdata)
  12.  
  13. print(sprintf("標本 : n = %d, s^2 = %g", n, ssq), quote = FALSE)
  14.  
  15. # 帰無仮説
  16. sigmasq0 <- 4
  17. print(sprintf("帰無仮説 : sigma^2 = %g", sigmasq0), quote = FALSE)
  18.  
  19. # 検定統計量
  20. chisq.value <- (n - 1) * ssq / sigmasq0
  21. # 右片側検定
  22. chisq.right.p <- pchisq(chisq.value, n - 1, lower.tail = FALSE)
  23. # 左片側検定
  24. chisq.left.p <- pchisq(chisq.value, n - 1)
  25. # 両側検定
  26. if (chisq.right.p > chisq.left.p) {
  27. chisq.twosided.p <- chisq.left.p * 2
  28. } else {
  29. chisq.twosided.p <- chisq.right.p * 2
  30. }
  31.  
  32. print(sprintf("chi^2 = %g, 右片側 p = %g, 左片側 p = %g, 両側 p = %g",
  33. chisq.value, chisq.right.p, chisq.left.p, chisq.twosided.p),
  34. quote = FALSE)

test_var.R の実行結果

[1] 標本 : n = 10, s^2 = 9.25389
[1] 帰無仮説 : sigma^2 = 4
[1] chi^2 = 20.8213, 右片側 p = 0.0134682, 左片側 p = 0.986532, 両側 p = 0.0269364

カイ二乗検定の例

airquality の Wind を母集団とする。 この母集団から $n=10$ 個の標本を抽出したところ、不偏分散 $s^{2}=9.25389\mathrm{[mph^{2}]}$ だった。 この標本を使って母分散は $4 \mathrm{[mph^{2}]}$ より大きいといえるかを 有意水準 5% で検定する。

1. 仮説の設定

これは右片側検定である。

2. 検定統計量と標本分布の決定

検定統計量は $\chi^{2}$ を用いる。 $\chi^{2}$ の標本分布は $\chi^{2}(9)$ である。

3. 有意水準の決定

有意水準 5% なので $\alpha=0.05$ である。

4. 検定の実施

標本から $\chi^{2}=20.8213$ で $p=0.0134682<0.05$ だった。 よって有意水準 5% で帰無仮説は棄却されるので、対立仮説が採択される。 つまり、有意水準 5% で母分散は $4\mathrm{[mph^{2}]}$ より大きいといえる。

小テスト

Moodle Server(非公式)で第6回の小テストを受験しなさい。

独立な2群の検定

二つの独立な母集団を対象とした仮説検定を考えよう。 例えば、新しい教育方法の効果を調べる場合、学生を二つのグループに分け、一方のグループに新しい教育方法による授業、もう一方のグループに従来の教育方法による授業を行い、同じ試験の成績の平均に有意な差があるかどうかを検証する。 新しい教育方法のグループを処理群、従来の教育方法のグループを対照群もしくは制御群ということがある。

母集団は正規分布(正規母集団)とし、そこから無作為に標本を抽出する。

標本平均 \[ \bar{X}=\frac{1}{m}\sum_{i=1}^{m}X_{i} \] \[ \bar{Y}=\frac{1}{n}\sum_{j=1}^{n}Y_{j} \] 不偏分散 \[ s_{1}^{2}=\frac{1}{m-1}\sum_{i=1}^{m}(X_{i}-\bar{X})^{2} \] \[ s_{2}^{2}=\frac{1}{n-1}\sum_{j=1}^{n}(Y_{j}-\bar{Y})^{2} \] \[ s^{2}=\frac{(m-1)s_{1}^{2}+(n-1)s_{2}^{2}}{m+n-2} \]

二つの母集団の母平均を比べる場合、母平均の差を検定する。 ただし、母集団の母分散が同じであればこの検定は比較的簡単だが、母分散が異なると難しくなり近似的な方法で検定せざるを得ない。 そこで、まずは母分散が同じかどうかを母分散の比の検定で確かめる。


母分散の比の検定

母分散が等しいかどうかを調べるために母分散の比の検定を行う。

1. 仮説の設定

これは両側検定である。

2. 検定統計量と標本分布の決定

検定統計量はフィッシャーの分散比 $F$ である。 \[ F=\frac{s_{1}^{2}}{s_{2}^{2}} \] 正規母集団からの標本であれば $F$ は自由度 $(m-1,n-1)$ の F 分布 $F(m-1,n-1)$ に従う。

3. 有意水準と棄却域の決定

有意水準を $\alpha$ とする。 棄却域 $R$ は次のようになる。 \[ R=\{F;F<F_{1-\alpha_/2}, F_{\alpha/2}<F\} \] $F_{\alpha}$ は $F(m-1,n-1)$ の上側確率 $\alpha$ のパーセント点である。、

F検定

4. 検定の実施

標本から求めた検定統計量が棄却域 $R$ に入れば帰無仮説を棄却し、対立仮説を採択する。 棄却域に入らなければ帰無仮説は棄却されないので、対立仮説は採択されない。

検定統計量に $F$ を用いる場合をF検定という。


母平均の差の検定(母分散が等しい場合)

母分散が等しい場合、母平均の差の検定は t 検定で行う。

1. 仮説の設定

これは両側検定である。

2. 検定統計量と標本分布の決定

検定統計量は $t$ である。 \[ t=\frac{\bar{X}-\bar{Y}}{s\sqrt{\frac{1}{m}+\frac{1}{n}}} \] 正規母集団からの標本であれば $t$ は自由度 $m+n-2$ のスチューデントの t 分布 $t(m+n-2)$ に従う。

3. 有意水準と棄却域の決定

有意水準を $\alpha$ とする。 棄却域 $R$ は次のようになる。 \[ R=\{t;|t|>t_{\alpha/2}\} \] $t_{\alpha}$ は $t(m+n-2)$ の上側確率 $\alpha$ のパーセント点である。、

4. 検定の実施

標本から求めた検定統計量が棄却域 $R$ に入れば帰無仮説を棄却し、対立仮説を採択する。 棄却域に入らなければ帰無仮説は棄却されないので、対立仮説は採択されない。


母平均の差の検定(母分散が異なる場合)

母分散が異なる場合はウェルチの検定という近似的な検定方法を使う。 詳細は省略する。

独立な2群の検定の関数

F検定については関数 var.test() がある。

> var.test(データ1, データ2)

平均の差の検定については関数 t.test() が使える。

> t.test(データ1, データ2, var.equal)

引数 var.equal が TRUE だと t 検定、FALSE だとウェルチの検定になる。 デフォルトは FALSE なので、var.equal を省略するとウェルチの検定になる。

独立な2群の検定の例

2015年度の人口増減率について、山形県の市と町村でそれぞれ標本を抽出し、平均に差があるかを検証する。 ここで市と町村のデータはそれぞれ正規母集団だとみなす1)

有意水準5%としよう。

次のプログラム test_diffmean.R は第2回に e-Stat からダウンロードした山形県の市町村データ(ファイル名は yamagata.csv にしている)において、人口増減率の平均の差の検定を行うプログラムである。

test_diffmean.R
  1. library(readr)
  2.  
  3. # データの読み込み
  4. df <- read_csv("yamagata.csv", locale = locale(encoding = "SHIFT-JIS"))
  5.  
  6. df$`/項目` <- NULL
  7. df$調査年 <- as.numeric(sapply(df$調査年, gsub, pattern="年度", replacement = ""))
  8. df <- df[order(df$調査年),]
  9.  
  10. # 市
  11. df1 <- df[grep("市$", df$地域),]
  12. # 町村
  13. df2 <- df[grep("町|村$", df$地域),]
  14.  
  15. # 2015年度の人口増減率を母集団とする
  16. pdata1 <- df1[df1$調査年 == 2015,][["#A05101_人口増減率【%】"]]
  17. pdata2 <- df2[df2$調査年 == 2015,][["#A05101_人口増減率【%】"]]
  18.  
  19. # 標本抽出
  20. sdata1 <- sample(pdata1, 8)
  21. sdata2 <- sample(pdata2, 10)
  22.  
  23. # 標本平均と不偏分散
  24. print(sprintf("市 : m = %d, xbar = %g, s1^2 = %g",
  25. length(sdata1), mean(sdata1), var(sdata1)), quote = FALSE)
  26. print(sprintf("町村 : n = %d, ybar = %g, s2^2 = %g",
  27. length(sdata2), mean(sdata2), var(sdata2)), quote = FALSE)
  28.  
  29. # 分散の比の検定(F検定)
  30. result.var <- var.test(sdata1, sdata2)
  31. print(result.var)
  32.  
  33. # 平均の差の検定(t検定)
  34. result.t <- t.test(sdata1, sdata2, var.equal = TRUE)
  35. print(result.t)
  36.  
  37. # 平均の差の検定(ウェルチの検定)
  38. result.welch <- t.test(sdata1, sdata2)
  39. print(result.welch)

実行結果(標本平均と不偏分散)

[1]: m = 8, xbar = -3.52, s1^2 = 10.55
[1] 町村 : n = 10, ybar = -8.271, s2^2 = 2.53817

実行結果(F検定)

	F test to compare two variances
 
data:  sdata1 and sdata2
F = 4.1565, num df = 7, denom df = 9, p-value = 0.05147
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
  0.9903473 20.0478658
sample estimates:
ratio of variances 
          4.156534 

F検定を行うと $p=0.05147$ となり、有意水準 5%で「母分散は等しい」という帰無仮説は棄却されないので、「母分散は等しくない」という対立仮説が採択されない。

実行結果(t検定)

	Two Sample t-test
 
data:  sdata1 and sdata2
t = 4.0743, df = 16, p-value = 0.0008829
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 2.279015 7.222985
sample estimates:
mean of x mean of y 
   -3.520    -8.271 

実行結果(ウェルチの検定)

	Welch Two Sample t-test
 
data:  sdata1 and sdata2
t = 3.7886, df = 9.6751, p-value = 0.003767
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 1.944101 7.557899
sample estimates:
mean of x mean of y 
   -3.520    -8.271

F検定によって母分散が等しくないとみなせないため、 t検定を行うと $p=0.0008829$ となり、有意水準 5%で「母平均は等しい」という帰無仮説は棄却されるので、「母平均は等しくない」という対立仮説が採択される。

1)
正規性の検定(シャピロ・ウィルクの検定など)で市と町村のそれぞれの母集団が正規分布かは検定できる。