65. 二標本検定


10 人の患者から成る 2 つのグループがあり,それぞれの患者に2つの睡眠薬を飲ませ,睡眠時間がどれだけ増加したかを示すデータ(データ名:sleep)を挙げる.

group1

 0.7

 -1.6

 -0.2

 -1.2

 -0.1

 3.4

 3.7

 0.8

 0.0

 2.0

group2

 1.9

 0.8

 1.1

 0.1

 -0.1

 4.4

 5.5

 1.6

 4.6

 3.4

検定を行うために,上記のデータを R に読み込ませる.

 
 group1 <- c(0.7,-1.6,-0.2,-1.2,-0.1,3.4,3.7,0.8,0.0,2.0)    # グループ 1 の睡眠時間の増加
 group2 <- c(1.9, 0.8, 1.1, 0.1,-0.1,4.4,5.5,1.6,4.6,3.4)    # グループ 2 の睡眠時間の増加

二標本 t 検定(分散が等しいと仮定)

「グループ1の睡眠増加時間の平均」と「グループ2の睡眠増加時間の平均」で差があるかどうかを検定する方法を紹介する.ここでは 2 つのグループの分散が等しいと仮定して,関数 t.test() を用いて検定を行う.

 
 t.test(group1, group2, var.equal=T)
 
        Two Sample t-test
data:  group1 and group2 
t = -1.8608, df = 18, p-value = 0.07919
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -3.3638740  0.2038740 
sample estimates:
mean of x mean of y 
     0.75      2.33 

対応の無い二標本 t 検定」と呼ばれることもある

ここで,関数名(y ~ x) という形式で検定を行う書式を示す.

 
 t.test(extra ~ group, data = sleep, var.equal=T) # extra:睡眠時間のデータ,group:群データ
 
        Two Sample t-test

data:  extra by group 
t = -1.8608, df = 18, p-value = 0.07919
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -3.3638740  0.2038740 
sample estimates:
mean in group 1 mean in group 2 
           0.75            2.33  

二標本 t 検定(ウェルチの検定)

関数 t.test() でウェルチの検定(等分散を仮定しない場合)を行う.等分散を仮定しない場合はオプション var.equal=F とすればよい.

 
 t.test(group1, group2, var.equal=F)
 
        Welch Two Sample t-test

data:  group1 and group2 
t = -1.8608, df = 17.776, p-value = 0.0794
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -3.3654832  0.2054832 
sample estimates:
mean of x mean of y 
     0.75      2.33  

ウィルコクソンの順位和検定・マン・ホイットニーの U 検定

関数 wilcox.test() でウィルコクソンの順位和検定を行う.マン・ホイットニーの U 検定とも呼ばれる.correct=F で連続性の修正を行わないよう指定することも出来る.

 
 wilcox.test(group1, group2)
 
        Wilcoxon rank sum test with continuity correction
data:  group1 and group2 
W = 25.5, p-value = 0.06933
alternative hypothesis: true mu is not equal to 0 

t 検定が意味を持ち,最も威力を発揮する状況は,「2群の分布が共に正規分布に近い」「分散がほぼ等しく,分布の違いが中心位置の違いに帰着できる」という状況である.t 検定は外れ値があるようなデータには弱いため,そのような場合は外れ値に強い(ロバストな)検定であるウィルコクソンの順位和検定を用いるのが良い.

等分散性の検定:F 検定

データ sleep について,関数 var.test() で,group1 と group2 の母分散が等しいかどうかの検定を行う.

 
 var.test(group1, group2)
 
        F test to compare two variances
data:  group1 and group2 
F = 0.7983, num df = 9, denom df = 9, p-value = 0.7427
alternative hypothesis: true ratio of variances is not equal to 1 
95 percent confidence interval:
 0.198297 3.214123 
sample estimates:
ratio of variances 
         0.7983426

【参考】分散の均一性の検定:バートレットの方法

2つのデータの分散の同等性は上で出てきたウェルチの方法で検定が行えた.データの組が 3 つ以上の場合はバートレットの方法で検定を行うことになる.

場所

 

葉の長さのデータ

A

80

73

80

82

74

B

73

68

81

85

 

C

85

93

88

 

 

例えば,A ,B ,C の 3 つの場所のリンゴの葉の長さを調べてみたところ,次のようなデータが取られた.このとき,場所により葉の分散に差があると云えるかを有意水準 5% で検定する場合にバートレットの方法を用いる. 関数は bartlett.test() を用いる.

 
 length <- c(80, 73, 80, 82, 74, 73, 68, 81, 85, 85, 93, 88)   # データ
 group  <- c(rep(1, 5), rep(2, 4), rep(3, 3))                  # 群
 bartlett.test(length, group)
 
        Bartlett test of homogeneity of variances
 
data:  length and group 
Bartlett's K-squared = 1.5451, df = 2, p-value = 0.4618