【R講座】ウィルコクソンの符号順位検定の方法と実践

R

研究室に配属されたばかりの新入生や、これからRで統計分析を始めたいと思っている方へ向けて、【R講座】では、RとRStudioの基本的な使い方から統計手法の選び方、基本的なデータ分析方法までを解説しています。

特にRが初めての方でも安心して学べるように、難しいコマンドやコードは少なめで、RStudioのクリック操作を中心に進めていくので、プログラミングの経験がなくても大丈夫です。

実際のコードを交えながら進めるので、これからの研究やデータ分析に、ぜひ役立ててください!

R講座の記事一覧
「R講座」の記事一覧です。

この記事では、ウィルコクソンの符号順位検定について紹介しています。

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

ウィルコクソンの符号順位検定は、2つの関連するサンプル間の差を評価するためのノンパラメトリックな検定です。

前提設定

  • 対応の有無:対応あり(ペアデータ)
  • 正規性:不要
  • 等分散性:不要
  • 群数:2群
  • データ尺度:順序尺度または間隔尺度・比例尺度

仮説の設定

  • 帰無仮説(H0:2つのサンプル間に差がない。
  • 対立仮説(H1:2つのサンプル間に差がある。

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

関数と引数オプション

Rでは、wilcox.test() 関数を使用してウィルコクソンの符号順位検定を行います。この関数は、2つの関連するサンプルデータを引数として受け取ります。

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,
            tol.root = 1e-4, digits.rank = Inf, ...)
wilcox.test(formula, data, subset, na.action, ...)
  • x: 数値データのベクトル。無限や欠損値は省略されます。
  • y: オプションの数値データのベクトル。xと同様に無限や欠損値は省略されます。
  • alternative: 対立仮説を指定する文字列。 "two.sided"(デフォルト)、"greater"、"less"のいずれか。最初の文字だけでも指定できます。
  • mu: 帰無仮説を構成するためのオプションのパラメータ。
  • paired: 対応のあるテストを行うかどうかを示す論理値。
  • exact: 正確なp値を計算するかどうかを示す論理値。
  • correct: p値の正規近似のための連続性補正を適用するかどうかを示す論理値。
  • conf.int: 信頼区間を計算するかどうかを示す論理値。
  • conf.level: 信頼区間の信頼水準。
  • tol.root: (conf.intがTRUEの場合)正の数値トレランス。uniroot(*, tol=tol.root)で使用されます。
  • digits.rank: 数値。有限の場合、検定統計量を計算するためにrank(signif(r, digits.rank))が使用されます。
  • formula: lhs ~ rhsの形式の式。lhsはデータ値を示す数値変数で、rhsは1(1サンプルまたは対応テストの場合)か2レベルの因子。lhsが"Pair"クラスでrhsが1の場合、対応テストが行われます。
  • data: 式中の変数を含むオプションの行列またはデータフレーム。デフォルトでは、変数はenvironment(formula)から取得されます。
  • subset: 使用する観測値のサブセットを指定するオプションのベクトル。
  • na.action: データにNAが含まれている場合の処理方法を示す関数。デフォルトはgetOption("na.action")。
  • ...:その他の引数。

コード例と結果の見方

次のコードでは、異なる肥料を使った2つの植物グループの成長データを使用し、ウィルコクソンの符号順位検定を実行しています。

# グループAとグループBの成長データ
group_A <- c(10, 12, 14, 13, 15)
group_B <- c(9, 11, 13, 12, 14)

# データをデータフレームに変換
data <- data.frame(
  group = rep(c("A", "B"), each = length(group_A)),
  value = c(group_A, group_B)
)

# ウィルコクソンの符号順位検定の実行
wilcox.test(value ~ group, data = data, paired = TRUE)
# 結果
Wilcoxon signed rank test with continuity correction

data:  value by group
V = 15, p-value = 0.03689
alternative hypothesis: true location shift is not equal to 0

この結果から、p値が0.03689であり、有意水準5%以下であるため、帰無仮説は棄却され、2つのサンプル間に有意な差があると結論付けることができます。

Warning message:
In wilcox.test.default(group1, group2) : 
 cannot compute exact p-value with ties

という警告文が出る場合は、exactRankTestsパッケージのwilcox.exact関数を使うこともできます。


この記事はウィルコクソンの符号順位検定について紹介しました。

次回はフリードマン検定の方法について紹介します。

タイトルとURLをコピーしました