みなさん,こんにちは。
シンノユウキ(shinno1993)です。
今回は,対応のない2群間での数量データを比較する際の統計手法を解説します.仮説検定としては,
- スチューデントのt検定
- マン・ホイットニー検定
をとりあげます.
では行きましょう!
検定の使い分けについて
はじめに,今回紹介する2つの統計手法の使い分けについて紹介します.この2つは,しっかりと使い分ける必要があります.
この2つの統計手法のうち,スチューデントのt検定はパラメトリック検定と呼ばれる統計手法で正規分布を前提としています.それに対して,マン・ホイットニー検定はノンパラメトリック検定で,前提に正規分布を必要としません.なので簡単にいうと,・正規分布に従う→スチューデントのt検定
・正規分布に従わない→マン・ホイットニー検定
という風に使い分ければOKです.
正規分布について,詳しくは以下の記事をご覧ください:
データのインポート
まずは以下からデータをダウンロードしてください:
そして,変数dfとして読み込んでおきましょう.
df <- read.csv( "sample.csv", header = TRUE ) df
以下のようなデータが表示されればOKです:
sex energy 1 male 2666.9074 2 male 1446.6150 3 male 2726.5346 4 male 2604.5651 5 male 2510.5896 6 male 1806.4310 ・・・ 198 female 1640.9335 199 female 1547.6084 200 female 1514.4494
性別ごとにエネルギーの値が格納されています.
スチューデントのt検定
はじめに,スチューデントのt検定から紹介していきます.
今回のデータは男性(male)と女性(female)に分かれています.この男性と女性とのエネルギー摂取量を比較しましょう.
その前に,男性と女性とにデータを分けておきましょう.sexがmaleの場合とfemaleの場合とで別々のベクトルに格納するという処理を行います.以下のコードを実行してください:
male <- subset(df, sex=='male') female <- subset(df, sex=='female')
subset関数を使用することでデータフレームから条件に合致するデータを抽出することができます: subset (データフレーム, 条件式)
これで,male
と female
とにデータを分割することができました.ではこの2つのデータを使用して,スチューデントのt検定を行ってみましょう.
スチューデントのt検定は t.test()
を使用します.以下のような使い方をします: t.test(x = ベクトル, y = ベクトル, var.equal=TRUE, paired=FALSE)
- var.equal:等分散性を仮定しているかを指定します.スチューデントのt検定は等分散性を仮定した検定なので
TRUE
を指定してください. - paired:データに対応があるかどうかを指定します.スチューデントのt検定は対応のないデータに使用しますので
FALSE
を指定してください.
今回の場合は以下のようなコードになります:
t.test( x = male$energy, y = female$energy, var.equal = TRUE, paired = FALSE )
結果は以下のようになります:
Two Sample t-test data: male$energy and female$energy t = 8.8937, df = 198, p-value = 3.709e-16 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 351.1964 551.3116 sample estimates: mean of x mean of y 2210.640 1759.386
p値が非常に小さな値(3.709e-16)ですね.x(男性のエネルギー摂取量)の平均値が2210,y(女性のエネルギー摂取量)が1759,その差の95%信頼区間が 351~551 という結果がでました.
p値が低いため,帰無仮説(同一の母集団から抽出された)を棄却,男性と女性のエネルギー摂取量には差があると結論できます.
マン・ホイットニーの検定
次にマン・ホイットニー検定です.
マン・ホイットニー検定は,別名:ウィルコクソンの順位和検定とも言います.Rではこちらの呼び方が採用されており,以下のように使用します: wilcox.test(x = ベクトル, y = ベクトル)
で実行できます.今回のデータだと以下のようになります:
wilcox.test( x = male$energy, y = female$energy )
この結果は以下のようになります:
Wilcoxon rank sum test with continuity correction data: male$energy and female$energy W = 8066, p-value = 6.876e-14 alternative hypothesis: true location shift is not equal to 0
こちらでもp値は小さく(6.876e-14)帰無仮説が棄却されました.なので,こちらの方法でも男女でエネルギー摂取量に差がある,という結論になります.
まとめ
今回は,Rにおける対応のない2群間の検定手法について解説しました.対応のある方法などについては次回で紹介します.
連載目次
- 【R×栄養統計】RとRStudioをインストールしよう
- 【R×栄養統計】四則演算と代表値の算出をやってみよう
- 【R×栄養統計】データの読み込み方法を習得しよう【TXT・CSV,・XLSX】
- 【R×栄養統計】性別と肥満度に関係があるか?カテゴリデータの栄養統計
- 【R×栄養統計】正規分布しているか?正規性を確認する方法を紹介します
- 【R×栄養統計】男女でエネルギー摂取量に差はある?対応のない2群間の栄養統計現在のページ
- 【R×栄養統計】栄養指導に効果はあった?対応のある2群間の栄養統計
- 【R×栄養統計】食べる速さでエネルギー摂取量に差がある?対応のない多標本の栄養統計
- 【R×栄養統計】多重比較を行う理由と使い分けを紹介|検定の多重性問題
- 【R×栄養統計】どの群間に差がある?対応のない多標本における多重比較