例題:
「ある地区で行った 40 歳以上 65 歳未満の住民検診に来所した男子 42 名,女子 63 名の血色素量についての検査成績は,男子では平均値 15.2 g/dl,不偏分散 1.1,女子では平均値 12.7 g/dl,不偏分散 3.2 であった。二群の母分散が等しいという仮定を置かず,男女の平均値に差はあるか,有意水準 5% で両側検定しなさい。」
R による解析:
> my.t.test(42, 15.2, 1.1, 63, 12.7, 3.2) # この関数の定義を見る ウエルチの方法による,二群の平均値の差の検定 data: n1 = 42, mean1 = 15.2, variance1 = 1.1 n2 = 63, mean2 = 12.7, variance2 = 3.2 t = 9.0103, df = 101.58, p-value = 1.296e-14R には t.test という関数がある。この関数は,二群の測定値のベクトルを与えて結果を得るという仕様になっているので,この例題のように実際のデータがない場合には使えないと思っている人がいるが,以下のようにすれば実データがなくても,二群のサンプルサイズ,平均値,不偏分散が分かっていれば,検定を行うことが出来る。
第 1 群のデータベクトル x1 を作る。
> n1 <- 42 > mean1 <- 15.2 > variance1 <- 1.1 > x1 <- c(scale(rnorm(n1))*sqrt(variance1)+mean1)x1 のサンプルサイズ,平均値,不偏分散は n1, mean1, variance1 に等しくなっている。
> length(x1) [1] 42 > mean(x1) [1] 15.2 > var(x1) [1] 1.1第 2 群のデータベクトル x2 を作る。
> n2 <- 63 > mean2 <- 12.7 > variance2 <- 3.2 > x2 <- c(scale(rnorm(n2))*sqrt(variance2)+mean2)x2 についても,同じ。
x1,x2 を使って t.test を実行する。$t$ 値,自由度,$P$ 値 が一致することがわかる。
> t.test(x1, x2) Welch Two Sample t-test data: x1 and x2 t = 9.0103, df = 101.58, p-value = 1.296e-14 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 1.949632 3.050368 sample estimates: mean of x mean of y 15.2 12.7