【R×栄養統計】栄養指導に効果はあった?対応のある2群間の栄養統計

栄養統計
この記事は約6分で読めます。

みなさん,こんにちは.
シンノユウキ(shinno1993)です.

今回は,対応のある2群間での数量データを比較する際の統計手法を解説します.仮説検定としては,

  • 対応のあるt検定
  • ウィルコクソンの符号順位検定

をとりあげます.

では行きましょう!

対応のある・ないとは?

今回の統計手法では,対応のある2群間についての統計手法をお示しします.それに伴い,まずは対応のある・ないというのはどういう意味なのかを説明しておきます.

対応のあるデータというのは,たとえば同じ被験者において,条件を変えて測定されたようなデータのことを指します.具体的には以下のようなものです:

ID	薬A	薬B
1	-4	-4
2	0	-8
3	-2	-7
4	-4	0
5	-8	-8

同一の被験者において,薬Aと薬Bとで効果を確認しています.このようなデータを「対応のある」と表現します.

それに対して,以下に示す例は「対応のない」データです:

薬の種類	血圧低下
薬A	-4
薬A	-10
薬A	-4
薬B	-3
薬B	1
薬B	-8

このデータも先ほどのデータと同じように,薬による血圧低下の効果の違いを表したデータですが,今回は,薬Aと薬Bはそれぞれ違う人が服用しています.そのため,対応はありません.重要なのは,比較するのが同じ被験者かどうかという点です.

対応のあるデータでは,行の順番にも意味があります.同一個人のデータですので,ずれてしまっては意味がありません.それに対して,対応のないデータでは行の順番自体には意味がありません.対応のある・なしはこういった点で判断していきます.

栄養統計においては,栄養指導の前後における栄養素摂取量などを比較する際などに使うことが考えられます.なので,今回は栄養指導前後の食塩摂取量を題材に対応のある2群間の統計解析について学習していきましょう.

  • 対応のある → 同一の被験者から条件などを変えて採取されたデータ
  • 対応のない → 違う被験者から採取されたデータ

検定の使い分けについて

今回紹介する2つの統計手法は,パラメトリック検定とノンパラメトリック検定です.

すなわち,対応のあるt検定がパラメトリック検定,ウィルコクソンの符号順位検定がノンパラメトリック検定です.

パラメトリック検定が正規分布を仮定できるもので,ノンパラメトリック検定ができないものでしたね.こういった基準で使い分けていきましょう.

  • 対応のあるt検定 → パラメトリック検定
  • ウィルコクソンの符号順位検定 → ノンパラメトリック検定

データのインポート

まずは以下からデータをダウンロードしてください:

そして,変数dfとして読み込んでおきましょう:

df <- read.csv(
  "sample.csv",
  header = TRUE  
)
df

以下のようなデータが表示されればOKです:

   before after
1      10     8
2      10    12
3      13    13
・・・
48     13     8
49     15     7
50     12     8

before と after が格納されています.

一応このデータは,同一の対象者において栄養指導を行い,その前後の食塩摂取量というものを想定しています.以降でこれを比較していくこととします.

対応のあるt検定

はじめに,対応のあるt検定から解説していきます.対応のあるt検定は,先程も説明しましたように,正規分布を仮定したパラメトリック検定です.実際に使用する際は,使い分けに注意してください.

対応のあるt検定は以下の書式で行うことができます.

t.test(x = ベクトル, y = ベクトル, var.equal = TRUE, paired = TRUE)

以前行ったスチューデントのt検定で pairedTRUE としただけです.これで対応のあるt検定を行うことができます.なので,このコードで,paired の部分を省略したり,FALSE にする(対応なしにする)と対応のないt検定,つまりスチューデントのt検定となります.

では,コード全体をみてみましょう.以下のようになります:

t.test(
  x = df$before,
  y = df$after, 
  var.equal = TRUE,
  paired = TRUE
)

結果は以下のように出力されます:

	Paired t-test

data:  df$before and df$after
t = 3.8129, df = 49, p-value = 0.0003847
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 0.8513248 2.7486752
sample estimates:
mean of the differences 
                    1.8

p値が0.0003847 と一般的な有意水準である 0.05 を下回っていることから,有意差ありと言えるでしょう.つまり,栄養指導の前後で食塩摂取量に差がないとは言えない→差があると言えるでしょう.

ウィルコクソンの符号順位検定

次に,ウィルコクソンの符号順位検定について解説します.こちらは,正規分布を仮定しないノンパラメトリック検定です.対応のあるt検定が平均値を比較していたのに対して,ウィルコクソンの符号順位検定では中央値を比較しています.

ウィルコクソンの符号順位検定は,Rの標準の機能として用意されていないため,新しくパッケージを読み込む必要があります.以下のスクリプトを実行してください.

install.packages("exactRankTests", repos="http://cran.ism.ac.jp/")
library(exactRankTests)

ここでは,パッケージをインストールし,使用できるように読み込む処理を行っています.

実際にウィルコクソンの符号順位検定を行うコードは以下の通りです.

wilcox.exact(x = ベクトル, y = ベクトル, paired =TRUE)

対応のあるt検定と書き方は同様ですね.コード全体は以下のようになります:

wilcox.exact(
  x = df$before,
  y = df$after,
  paired = TRUE
)

そして,結果は以下のようになります:

	Exact Wilcoxon signed rank test

data:  df$before and df$after
V = 725, p-value = 0.0003692
alternative hypothesis: true mu is not equal to 0

こちらに関しても,p-value は0.0003692で有意差ありとみなします.すなわち,差がないという帰無仮説が棄却され,「alternative hypothesis: true mu is not equal to 0」,対立仮説である,真の差が0ではない=差がある,が採択されます.

まとめ

今回は介入前後の食塩摂取量に差があるかどうかを検定するために,対応のある2群間での数量データを比較する検定手法を解説しました.ご参考にしてください.

連載目次

  1. 【R×栄養統計】RとRStudioをインストールしよう
  2. 【R×栄養統計】四則演算と代表値の算出をやってみよう
  3. 【R×栄養統計】データの読み込み方法を習得しよう【TXT・CSV,・XLSX】
  4. 【R×栄養統計】性別と肥満度に関係があるか?カテゴリデータの栄養統計
  5. 【R×栄養統計】正規分布しているか?正規性を確認する方法を紹介します
  6. 【R×栄養統計】男女でエネルギー摂取量に差はある?対応のない2群間の栄養統計
  7. 【R×栄養統計】栄養指導に効果はあった?対応のある2群間の栄養統計現在のページ
  8. 【R×栄養統計】食べる速さでエネルギー摂取量に差がある?対応のない多標本の栄養統計
  9. 【R×栄養統計】多重比較を行う理由と使い分けを紹介|検定の多重性問題
  10. 【R×栄養統計】どの群間に差がある?対応のない多標本における多重比較
タイトルとURLをコピーしました