Last updated: October 2009. Kajiyama                    [ 目次に戻る ]

独立な2群の平均値の差に関するt検定とウェルチの方法 (2)「スタック形式」


  1. 2つの平均値を比べる

    ・男女でお小遣いの金額(平均値)に違いがあるか.

    ・2つのお店で売っている饅頭の重さ(平均値)に違いがあるか.

    ・実験群と統制群(対照群)の成績(平均値)に違いがあるか.

    これを検討するには,直接には2つのグループから標本を抽出して標本の平均金額,重さの平均値を調べ,

    調べた標本の平均値から,その背後にある母集団の平均値を推測する.

    ・2つグループの平均値の比較にt検定が使用される.


    表1  [男性]と[女性]テストの図形科学の成績 10点満点

    ランダムに選んだ男女9人ずつの学生の成績から男女間にテストの成績(テストの平均値)に違いがあるかをt検定する.

    このデータフレームを「アンスタック形式」と呼び区別する.

    男性 女性
    10 9
    9 10
    9 8
    9 10
    7 8
    8 7
    6 7
    7 5
    5 7


  2. 「スタック形式」のデータフレームの読み込みと確認

    (1) 「スタック形式」のデータフレームの作成

    「スタック形式」のデータフレームでは男女別の「群の変数」とその値の「測定値の変数」の形式にする.

    表2 [男性]と[女性]テストの図形科学の成績

    測定値
    10 男性
    9 男性
    9 男性
    9 男性
    7 男性
    8 男性
    6 男性
    7 男性
    5 男性
    9 女性
    10 女性
    8 女性
    10 女性
    8 女性
    7 女性
    7 女性
    5 女性
    7 女性


    (2) データフレームの読み込み

    ここでは,「Web上の表シート」あるいは「エクセルの表計算シート」からクリップボード経由で読み込む操作を行う.

    Rの「コンソール」画面に,

    x <- read.table("clipboard", header=TRUE   )   # header=TRUE は第1行が列の変数名

    と記述し, 次に,表2 [群]と[測定値]の緑の部分をマウスで選択し,これをコピーする.

    そして,エンターキーを押す.

    コピーした[clipboard]データファイルを,Rの内部のデータフレーム,ファイル名 x に直接読み込む.


    (3) 読み込んだデータフレームの確認

    x #     と記述し,Rの内部に作成したデータフレーム x を,表示し確認する.

    > x <- read.table("clipboard", header=TRUE )
    > x
      測定値   群
     1  10    男性
     2   9    男性
     3   9    男性
     4   9    男性
     5   7    男性
     6   8    男性
     7   6    男性
     8   7    男性
     9   5    男性
    10   9    女性
    11   10    女性
    12   8    女性
    13   10    女性
    14   8    女性
    15   7    女性
    16   7    女性
    17   5    女性
    18   7    女性
    


    (4) データフレームの構造確認

    str (x) #    と記述し,Rの内部のデータフレーム x の変数の内容を表示確認する.

    > str (x)
    'data.frame': 18 obs. of  2 variables:
     $ 測定値  : int   10 9 9 9 7 8 6 7 5 9 ...
     $ 群    : Factor  w/ 2 levels "女性","男性": 2 2 2 2 2 2 2 2 2 1 ...
    


    (5) データフレームの平均値と基礎統計量

    by ( x$測定値, x$群, summary ) #     と記述し,Rの内部のデータフレーム x の要約統計量を表示確認する.

    by ( x$測定値, x$群, var ) #     と記述し, x の不偏分散を表示確認する.

     > by (x$測定値, x$群, summary )
    
    x$群: 女性
      Min.  1st Qu. Median   Mean  3rd Qu.  Max.
     5.000   7.000  8.000  7.889  9.000   10.000
    ---------------------------------------------------------------------
    x$群: 男性
      Min.  1st Qu. Median  Mean  3rd Qu.  Max. 
     5.000   7.000  8.000  7.778  9.000    10.000 
    
     > by (x$測定値, x$群, var ) # 不偏分散
    x$群: 女性
    [1] 2.611111
    ----------------------------------------------------------- 
    x$群: 男性
    [1] 2.694444
    


    (6) 箱ひげグラフの作成  box-whisker plot

    boxplot ( 測定値 ~ 群, data=x ) #     と記述し,変数ごとの分布を観察できる箱ひげグラフを作成する.

    女性の平均 7.9 男性の平均 7.8の平均値の違いがあるが,データのばらつきに違いがあるとは観察されない.平均値の違いを検定して確かめる.


  3. 分散の等質性の検定 「2群の分散が等しい場合・等分散を判別する」

    2群の分散が等しいか,あるいは等しくないかを検定する.2群の分散は等質であるとの帰無仮説を立てる.

    2群の分散が等しい場合,「t検定」を行ことができる.2群の分散が等しくない場合,「ウェルチのt検定」を行う.

    (1)Rの「コンソール」画面に,

    var.test( x$測定値 ~ x$群 ) # と記述し検定を行う. var.test (データファイル名 $ 変数1 ~ データファイル名 $ 変数2 )

    var.test ( x[,1] ~ x[,2] ) # と記述しても同じ. var.test (データファイル名[ ,1] ~ データファイル名[ ,2], ) 変数1は測定値, 変数2は群

    > var.test ( x$測定値 ~ x$群 )

    F test to compare two variances           2つの分散の比較のためのF検定

    data: x$測定値 by x$群                  データの変数
    F = 0.9691, num df = 8, denom df = 8, p-value = 0.9656
    検定統計量F =0.9691 分子の自由度 num df = 8, 分母の自由度 denom df = 8, p値 p-value = 0.9656
                                                 両側検定 男性>女性 男性<女性
    alternative hypothesis: true ratio of variances is not equal to 1    対立仮説は母分散の比が1ではない
    95 percent confidence interval:                       95%信頼区間の下限と上限の値
     0.2185913         4.2961488
    sample estimates:
    ratio of variances                            標本から計算された分散の比
     0.9690722


    (2) 結果の読み方

    分散の等質性の検定の結果 p値は0.97であり,帰無仮説は棄却できない.

    2群の分散が等しく「等分散」と判断できる. 「t検定」を行う.


  4. 2群の平均値の差に関するt検定 「2群の分散が等しい場合・等分散」 (Two Sample t-test)

    (1) Rの「コンソール」画面に,

    t.test ( 測定値 ~ 群, x, var.equal=TRUE ) # と記述し検定を行う. #t.test ( 測定値 ~ 群, データファイル名, var.equal=TRUE )

    t.test ( x[,1] ~ x[,2], var.equal=TRUE ) # と記述しても同じ.

    #t.test ( データファイル名[,1] ~ データファイル名[,2], var.equal=TRUE )  変数1は測定値, 変数2は群

    > t.test ( 測定値 ~ 群, x, var.equal=TRUE )

    Two Sample t-test           2群の平均値の差に関するt検定

    data: 測定値 by 群                  データ 群と測定値
    t = 0.1447,  df = 16,  p-value = 0.8867   検定統計量t = 0.1447 自由度 df = 16, p値 p-value = 0.8867
                                                    両側検定 男性>女性 男性<女性
    alternative hypothesis: true difference in means is not equal to 0
    95 percent confidence interval:            95%信頼区間の下限と上限の値
    -1.516537    1.738760
    sample estimates:
    mean in group 女性 mean in group 男性        標本から計算された標本平均値の値
         7.888889     7.777778            女性 7.888889   男性 7.777778


    (2) 結果の読み方

    男性と女性の成績 (成績の平均点) には差がないという帰無仮説を立てる.

     ・p値は 0.9である.有意水準は5%とすると p = 0.9>0.05 と5%より大きいので帰無仮説は棄却できない.

     ・検定結果は有意でない.

    女性の平均 7.9 男性の平均 7.8は差があるとはいえない. 図形科学のテストの成績に男女差があるとはいえない.


  5. ウェルチの方法 2群の平均値の差に関するt検定 「2群の分散が等しくない場合」 (Welch Two Sample t-test)

    (1) Rの「コンソール」画面に,

    t.test ( 測定値 ~ 群, x ) # と記述し検定を行う. #t.test ( 測定値 ~ 群, データファイル名 )

    t.test ( x[,1] ~ x[,2] ) # と記述しても同じ. #t.test ( データファイル名[,1] ~ データファイル名[,2] ) 変数1は測定値, 変数2は群

    > t.test ( 測定値 ~ 群, x )

    Welch Two Sample t-test           ウェルチのt検定

    data: 測定値 by 群                      データ 群と結果
    t = 0.1447,  df = 15.996,  p-value = 0.8867    検定統計量t = 0.1447 自由度 df = 15.996, p値 p-value = 0.8867
                                                    両側検定 男性>女性 男性<女性
    alternative hypothesis: true difference in means is not equal to 0
    95 percent confidence interval:            95%信頼区間の下限と上限の値
     -1.516570    1.738792
    sample estimates:
    mean in group 女性 mean in group 男性         標本から計算された標本平均値の値
        7.888889     7.777778             女性 7.888889  男性 7.777778

    (2) 結果の読み方

    男性と女性の成績 (成績の平均点) には差がないという帰無仮説を立てる.

     ・p値は 0.9である.有意水準は5%とすると p = 0.9>0.05 と5%より大きいので帰無仮説は棄却できない.

     ・検定結果は有意でない.

    女性の平均 7.9 男性の平均 7.8は差があるとはいえない. 図形科学のテストの成績に男女差があるとはいえない.

独立な2群の平均値の差に関するt検定とウェルチの方法 (2)「スタック形式」   [ 目次に戻る ]