Rで栄養統計を学ぼう!第5回:栄養指導に効果はあった?対応のある2群間の栄養統計

R言語

「Rで栄養統計を学ぼう!」の連載第5回。

今回は、対応のある2群間での数量データを比較する際の統計手法を解説します。

仮説検定としては、

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

をとりあげます。ではいきましょう。

対応のある・ないとは?

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

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

対応のあるデータ薬による血圧の変化の違い
ID 薬A 薬B
1 -4 -4
2 0 -8
3 -2 -7
4 -4 0
5 -8 -8

 

この表で示したデータのように、同じ被験者に対して、A薬とB薬の2種類の薬の効果を比較したようなデータは、対応のあるデータです。この場合、薬Aと薬Bとの効果を比較することになります。

それに対して、以下のようなデータは対応のないデータです。

 

対応のないデータ|薬による血圧の変化の違い
 薬の種類 血圧低下
薬A -4
薬A -10
薬A -4
薬B -3
薬B 1
薬B -8

 

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

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

検定の使い分けについて

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

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

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

 

データのインポート

まずはデータをインポートしましょう。今回もExcelファイルをインポートすることとします。以下のURLからExcelファイルをダウンロードし、「Import Data」→「From Excel」を選択し、インポートしてください。データ名はsampleとします。

sample-5.xlsx

今回のデータセットは以下のようになっており、介入前と介入後の食塩摂取量を示しています。

 

対応のあるt検定

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

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

 

この場合のそれぞれのベクトルは、対応のあるベクトルとします。今回の例では、介入前と介入後の食塩摂取量がそれぞれベクトル1、ベクトル2となります。

このコードで、paired の部分を省略したり、FALSEにする(対応なしにする)と対応のないt検定、つまりスチューデントのt検定となります。

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

 

データフレームを、before と after にそれぞれわけた後に、t検定の引き数としています。今回の場合だと、p-value が0.0003847なので、p<0.05で、有意差ありと判断することができます。

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

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

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

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

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

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

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

まとめ

今回は介入前後の食塩摂取量に差があるかどうかを検定するために、対応のある2群間での数量データを比較する検定手法を解説しました。以下に今回使用した関数をまとめてありますので、ご確認ください。

目的 関数名
対応のある検定を行う t.test(ベクトル1,ベクトル2,paired = TRUE)
ウィルコクソンの符号順位検定を行う wilcox.exact(x = ベクトル1,y = ベクトル2,paired =TRUE)

 

連載目次