群間差のノンパラメトリック検定
ウィルコクスンの符号検定 (マン・ウィットニーのU検定と実質的に同じ方法) 、クラスカル・ウォリス検定、フリードマン検定について
データと分析例、spssの結果はUCLAのサイトから。感謝。以下のコードは全てSPSSの結果と一致する。
library(foreign)
dat <- read.spss("http://www.ats.ucla.edu/stat/spss/webbooks/reg/hsb2.sav", to.data.frame=T)
names(dat) <- tolower(names(dat))
# 独立2群のマン・ウィットニーのU検定
# 従属変数が数値、独立変数が因子変数の場合
y <- dat$write
A <- dat$female
wilcox.test(y~A)
# 2群の数値変数がある場合
x <- dat$write[dat$female=="male"]
y <- dat$write[dat$female=="female"]
wilcox.test(x, y)
# 対応のあるウィルコクスンの順位和検定
y1 <- dat$write
y2 <- dat$read
wilcox.test(y1,y2,paired=TRUE)
# クラスカル・ウォリス検定。1要因分散分析のノンパラ版
y <- dat$write
A <- dat$prog
kruskal.test(y~A) # where y1 is numeric and A is a factor
# フリードマン検定。対応のある1要因分散分析 (乱塊法) のノンパラ版
datl <- stack(dat[7:9])
y <- datl[,1]
A <- datl[,2]
B <- factor(rep(1:200, 3)) # ブロック要因。いわゆる変量要因
friedman.test(y~A|B)
# マクネマー検定。順序尺度の比率差検定
himath <- as.integer(dat$math>60)
hiread <- as.integer(dat$read>60)
(tb <- table(himath, hiread))
mcnemar.test(tb)
wilcox.test 関数では alternative="less" or alternative="greater" とオプションを指定することで片側検定ができる。option to specify a one tailed test. t検定 と 最標本抽出 のオプションも参考。
npmc パッケージはノンパラノ多重比較も行える。
library(npmc)
npmc(x)
# x はvar名前の従属変数、classという名前の独立変数含むデータフレームであること。