ウイルコクソン検定 wilcox.test

*機能 [#k5b20e85]

(1) ウイルコクソンの符号付順位和検定を行う。~
(2) ウイルコクソンの符号順位検定を行う。これは,マン・ホイットニー検定と等価な結果を与える。~
注意:名前が似ているので紛らわしい。(1) は一標本または対応のある二標本の場合の検定である。対応のあるデータの差または一標本データから分布の中心の値を引いた値に順位を付け,符号ごとに和を取る。(2)は,二標本の場合の検定であり,データをまとめて(プールして)順位を付け標本ごとに順位の和をとる。

*使用法 [#e31896d0]

 wilcox.test(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired = FALSE,
             exact = NULL, correct = TRUE, conf.int = FALSE, conf.level = 0.95, ...)
 wilcox.test(formula, data, subset, na.action, ...)

 exactRankTests ライブラリ
 wilcox.exact(x, y = NULL, alternative = c("two.sided", "less", "greater"), mu = 0, paired = FALSE,
             exact = NULL, conf.int = FALSE, conf.level = 0.95, ...)
 wilcox.exact(formula, data, subset, na.action, ...)

*引数 [#s1a838ab]

 x		データベクトル
 y		データベクトル(二標本データの場合)
 		x だけが与えられた場合,または x, y が与えられて paired=TRUE が指定された場合は,
 		ウイルコクソンの符号付順位和検定をおこなう(mu を中心にして左右対称であることの検定)
 		x, y が与えられたときは,その差を取って利用するわけだ。だから,差だけを与えてもよいわけだ。
 alternarive	対立仮説の種類 "two.sided", "less", "greater" のいずれか
 		最初の1文字だけでもよい
 		両側検定なら "two.sided"(デフォルト)
 		片側検定なら "less" または "greater"
 mu		一標本の場合は位置パラメータ
 		二標本の場合は検定する位置の差
 		デフォルトでは 0
 paired		対応のある二標本データの場合に TRUE を指定する
 		デフォルトでは FALSE
 exact		正確な P 値を計算する場合に TRUE を指定する
 		デフォルトでは NULL であるが,データ数が 50 未満で,同順位がない場合には
 		内部処理により TRUE を指定したのと同じになる(正確な P 値が計算される)
                wilcox.exact では,同順位があっても正確な P 値が計算される
 correct	連続性の補正をしない場合に FALSE を指定する
 		デフォルトでは TRUE
 conf.int	一標本データの場合の疑似中央値,二標本データの場合の位置の差の信頼限界を計算する場合に TRUE を指定する
 		デフォルトでは FALSE
 conf.level	信頼率
 		デフォルトは 0.95
 formula	「左辺値 ~ 右辺値」の形をしたモデル式
 		左辺値は位置母数を検定する数値変数
 		右辺値は群を表す2つの水準を持つ factor 変数
 		formula で指定する使用法では,二標本データのみをサポートする
 data		モデル式に出てくる変数がデータフレームに含まれる場合は,それを含むデータフレーム名
 subset		観察データのサブセット
 na.action	データに NA が含まれるときに適用される関数(注)
 		デフォルトは getOption("na.action") により示されるもの(通常は na.omit 関数)
 ...		その他の引数

注:[[超訳:NAの扱い]]

*戻り値 [#tf431c42]

**関数への入力 [#p5ff75a4]

 $ alternarive: 対立仮説の種類
 $ null.value : 引数で指定した mu

**関数からの出力 [#j6285424]
 $ statistic  : 検定統計量
 $ parameter  : 検定統計量のパラメータ
 $ p.value    : P 値
 $ conf.int   : 位置母数の信頼区間
 $ estimate   : 位置母数の推定値
 $ method     : 検定の種別
 $ data.name  : データの記述

*例1 一標本データ mu=5 で対称か [#lc94f570]

 > x <- c(5, 3.9, 6.1, 5.6, 7, 4.9, 4.5, 6.6, 4.7, 4.6)
 
 > wilcox.test(x, mu=5, conf.int=TRUE)
 
 	Wilcoxon signed rank test with continuity correction # データから mu を引いて,符号付順位和検定
 
 data:  x 
 V = 28, p-value = 0.5536
 alternative hypothesis: true mu is not equal to 5 
 95 percent confidence interval:
  4.499986 6.100022 
 sample estimates:
 (pseudo)median # 疑似中央値
       5.292418 
 
 Warning messages:
 1: ゼロ値のため、正確な p 値を計算することができません in: wilcox.test.default(x, mu = 5, conf.int = TRUE) 
 2: ゼロ値のため、正確な信頼区間を計算することができません in: wilcox.test.default(x, mu = 5, conf.int = TRUE) 

注:「ゼロ値」というのは,差を取って 0 になるデータがあると,そのデータは有効な情報を与えないため検定から外すが,標本サイズをどのように調整したらよいかわからないというような感じかもしれない。しかし,上のデータから,事前に mu と等しいデータを除いてから検定すると
 > x <- c(3.9, 6.1, 5.6, 7, 4.9, 4.5, 6.6, 4.7, 4.6)
 
 > wilcox.test(x, mu=5, conf.int=TRUE)
 
 	Wilcoxon signed rank test
 
 data:  x 
 V = 28, p-value = 0.5703
 alternative hypothesis: true mu is not equal to 5 
 95 percent confidence interval:
  4.5 6.3 
 sample estimates:
 (pseudo)median 
            5.3 
となるのだから,前もって 0 のデータを除いてから検定すればいいだけなのじゃないかなぁ?

*例2 対応のある二標本データ(差は mu=0 か) [#a9c1151b]

 > x <- c(1,2,3,2,3,4,3,3,2,2,1,2,3)
 > y <- c(2,1,3,4,3,2,2,3,4,5,3,1,2)
 
 > wilcox.test(x, y, paired=TRUE) # 2 つのデータベクトルを与え,paired=TRUE を指定する
 
 	Wilcoxon signed rank test with continuity correction
 
 data:  x and y 
 V = 19.5, p-value = 0.4355
 alternative hypothesis: true mu is not equal to 0 
 
 Warning messages:
 1: タイがあるため、正確な p 値を計算することができません in: wilcox.test.default(x, y, paired = TRUE) 
 2: ゼロ値のため、正確な p 値を計算することができません in: wilcox.test.default(x, y, paired = TRUE) 
 
 > library(exactRankTests)
 > wilcox.exact(x, y, paired=TRUE) # 正確な P 値を求めたいなら exactRankTest ライブラリを
 
 	Exact Wilcoxon signed rank test
 
 data:  x and y 
 V = 19.5, p-value = 0.4336
 alternative hypothesis: true mu is not equal to 0 
 
 > wilcox.test(x-y) # 引き算をした結果が入っている 1 つのデータベクトルを与える
 
 	Wilcoxon signed rank test with continuity correction
 
 data:  x - y 
 V = 19.5, p-value = 0.4355 # 当然であるが,同じ結果になる
 alternative hypothesis: true mu is not equal to 0 
 
 Warning messages:
 1: タイがあるため、正確な p 値を計算することができません in: wilcox.test.default(x - y) 
 2: ゼロ値のため、正確な p 値を計算することができません in: wilcox.test.default(x - y) 
 
 > wilcox.exact(x-y)
 
 	Exact Wilcoxon signed rank test
 
 data:  x - y 
 V = 19.5, p-value = 0.4336
 alternative hypothesis: true mu is not equal to 0 

*例3 対応のない二標本データ(差は mu=0 か) [#h8d05024]

wilcox.test という名前でありながら,統計量の名前も W でありながら, 計算される検定統計量の数値は マン・ホイットニー検定で定義する統計量である

 > x <- c(1,2,3,2,3,4,3,3,2,2,1,2,3)
 > y <- c(2,1,3,4,3,2,2,3,4,5,3,1,2)
 
 > wilcox.test(x, y) # 対応のない二標本データとして検定
 
 	Wilcoxon rank sum test with continuity correction
 
 data:  x and y 
 W = 73, p-value = 0.555
 alternative hypothesis: true mu is not equal to 0 
 
 Warning message:
 タイがあるため、正確な p 値を計算することができません in: wilcox.test.default(x, y) 
 
 > wilcox.exact(x, y) # 正確な P 値が欲しいとき
 
 	Exact Wilcoxon rank sum test
 
 data:  x and y 
 W = 73, p-value = 0.5863
 alternative hypothesis: true mu is not equal to 0 
 
 > x <- c(1,2,3,2,3,4,3,3,2,2,1,2,3)
 > y <- c(2,1,3,4,3,2,2,3,4,5,3,1,2)
 > df <- data.frame(data=c(x, y), group=rep(1:2, each=13))
 
 > wilcox.test(data ~ group, df) # formula を使って,対応のない二標本データとして検定
 
 	Wilcoxon rank sum test with continuity correction
 
 data:  data by group 
 W = 73, p-value = 0.555
 alternative hypothesis: true mu is not equal to 0 
 
 Warning message:
 タイがあるため、正確な p 値を計算することができません in: wilcox.test.default(x = c(1, 2, 3, 2, 3, 4, 3, 3, 2, 2, 1, 2,  

*例4 データ数が多いときに exact=FALSE を指定してみる [#i0b30831]

 > set.seed(11111) # これは,追試のときに同じ結果が出るようにとのおまじない
 > x <- rnorm(50)
 > y <- rnorm(50, mean=1)
 
 > wilcox.test(x, y)
 
 	Wilcoxon rank sum test with continuity correction
 
 data:  x and y 
 W = 661, p-value = 4.97e-05
 alternative hypothesis: true mu is not equal to 0 
 
 > wilcox.test(x, y, exact=TRUE)
 
 	Wilcoxon rank sum test
 
 data:  x and y 
 W = 661, p-value = 3.355e-05 # 確かに違う(差は問題にならないが)
 alternative hypothesis: true mu is not equal to 0


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS