====== Rでt検定 ======
[[初めての医療統計:index.html|初めての医療統計 目次]]
独立した2群間の連続変数の平均値を比較する方法
1.t検定\\
2.Welch検定\\
3.Mann-Whitney U検定\\
2群間に対応がある場合(インスリン導入前後のHbA1cの値など)は、「対応のあるt検定」へ。
===== 1.どのような場合にt検定を用いることができるのか? =====
2群が独立しており、
(1)各群のデータが正規分布に従う => 両群の分散が等しければ、t検定。分散が等しくなければ、Welch検定を用いる。
(2)各群のデータが正規分布に従わない、あるいは順序変数 => Mann-Whitney U検定
===== 2.各群が正規分布に従うかどうかの判定”Kolmogorov-Smirnov検定(ks.test()関数)” =====
===== 3.正規分布に従う2群の分散が等しいかどうかの判定”F検定(var.test()関数)” =====
F検定の後にt検定することについては、議論があるらしいが、気にしないことにする。
標本の分散が帰無仮説に従うかどうかを検定\\
F 検定\\
2018.01.12\\
https://stats.biopapyrus.jp/stats/f-test.html\\
{{:pasted:20180203-221541.png}}
p>0.05であれば、2群は分散が等しいと言えるので、2群の平均値を比較するときはt検定を用いる。
p>0.05であれば、2群は分散が等しいとは言えないので、2群の平均値を比較するときはWelch検定を用いることになる。
===== 4.t検定"t.test(group1, group2, paired=F)" =====
p<0.05であれば、2群の平均値に有意差あり。
p>0.05であれば、2群の平均値に有意差無し。
DM_pre <- c(0.0002458, 0.0001889, 0.000129)
DM_1POD <- c(0.0001442, 0.00007158, 0.0001055)
group1 <- DM_pre
group2 <- DM_1POD
t.test(group1, group2, paired=F)
R Studioでの実行結果(F検定は行っていない)
{{:pasted:20180409-084509.png}}
元データが表になっている場合
x1 <- data1
x2 <- data2
group1 <- x1[, "HbA1c"]
group2 <- x2[, "HbA1c"]
t.test(group1, group2, paired=F)
{{:pasted:20190622-061419.png}}
===== 5.Welch検定"t.test(group1, group2, var.equal=F, paired=F)" =====
t.test()関数の中で、var.equal=F と入れればWelch検定ができる。
p<0.05であれば、2群の平均値に有意差あり。
p>0.05であれば、2群の平均値に有意差無し。
===== 6.Mann-Whitney U検定 =====
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/65.html
上記サイトでは、ウィルコクソンの順位和検定と、マン・ホイットニーの U 検定が同じであると記載されている.
Wilcoxon-Mann-Whitney検定(WMW検定)\\
https://oku.edu.mie-u.ac.jp/~okumura/stat/wmw.html
Rによるウィルコクソンの順位和検定\\
http://data-science.gr.jp/implementation/ist_r_wilcoxon_rank_sum_test.html
ウィルコクソンの順位和検定は2群間に対応がない場合に使う.この検定法はパラメトリック検定でいうところのスチューデントのt検定とかウェルチのt検定に相当する.
上記サイトよりコードを引用。
install.packages("exactRankTests", repos="http://cran.ism.ac.jp/")
library(exactRankTests)
wilcox.exact(x=vx,y=vy,paired=F)
===== memo =====
ks.test()関数を用いるときは、下記コードでは、y1["sBP_00pre"]ではエラーになる。正しくは、y1$sBP_00preのように記載する。データフレームとリストの違い?
y1 <- subset(x2, Hb_Improve=="TRUE")
y1 <- y1$sBP_00pre
ks.test(x=y1,y="pnorm",mean=mean(y1),sd=sd(y1))
===== 参考リンク =====
Rによるウェルチのt検定\\
http://data-science.gr.jp/implementation/ist_r_welch_t_test.html\\
{{:pasted:20180217-000345.png}}
===== 参考文献 =====
EZRで行う場合は、下の本のp92以降が非常に分かりやすいです。