実験群とコントロール群、リスク因子あり群となし群、介入群と非介入群、など二群比較 を R で実行する方法。
群ごとに平均値・標準偏差・中央値を求める
平均値を計算するなら tapply(var1, grp, mean)
を使用する。
grpのグループごとに、var1の平均値を計算する。
標準偏差を計算するなら、meanをsdに変える。
tapply(var1, grp, sd)
中央値はmedianと指定する。
tapply(var1, grp, median)
例:
with(sleep, tapply(extra, group, mean))
with(sleep, tapply(extra, group, sd))
with(sleep, tapply(extra, group, median))
> with(sleep, tapply(extra, group, mean))
1 2
0.75 2.33
>
> with(sleep, tapply(extra, group, sd))
1 2
1.789010 2.002249
>
> with(sleep, tapply(extra, group, median))
1 2
0.35 1.75
平均値の差の検定 ウェルチの方法
t.test()を使う。
統計ソフトRでは、平均値の差の検定は、ウェルチ(Welch)の方法がデフォルト。
ウェルチの方法は、二群が等分散かどうかを問題にしない。
等分散とみなせるときは、等分散の式で計算した結果と同様になる。
なので、いつでもウェルチを使っておけばよい。
例:
library(MASS)
with(birthwt, t.test(bwt~smoke))
> with(birthwt, t.test(bwt~smoke))
Welch Two Sample t-test
data: bwt by smoke
t = 2.7299, df = 170.1, p-value = 0.007003
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
78.57486 488.97860
sample estimates:
mean in group 0 mean in group 1
3055.696 2771.919
ウィルコクソンの順位和正確検定
coinパッケージのwilcox_test()を使う。
ウィルコクソン(Wilcoxon)の順位和検定は、マン・ホイットニー(Mann-Whitney)のU検定という名前でも知られるノンパラメトリック検定。
母集団が正規分布しているかどうか不明なデータで二群の比較したい場合に使う。
また、等分散かどうかを気にしなくていいように、正確確率検定 Exact Testを行う。
最初に一回だけパッケージをインストールする。
例:
install.packages("coin")
library(coin)
wilcox_test(bwt ~ factor(smoke), data=birthwt)
> wilcox_test(bwt ~ factor(smoke), data=birthwt, distribution="exact")
Exact Wilcoxon-Mann-Whitney Test
data: bwt by factor(smoke) (0, 1)
Z = 2.7094, p-value = 0.006549
alternative hypothesis: true mu is not equal to 0
まとめ
連続量の二群比較の基本として、
- 平均値
- 標準偏差
- 中央値
- ウェルチの検定
- ウィルコクソンの順位和検定
の方法を解説した。
参考になれば。
参考書籍
中澤港著 Rによる保健医療データ解析演習 ピアソン・エデュケーション
11.1.2 ウィルコクソンの順位和検定 pp.162-167
コメント