【R講座】フリードマン検定の方法と実践

R

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

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

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

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

この記事では、フリードマン検定について紹介しています。

フリードマン検定とは

フリードマン検定は、繰り返し測定データを分析するために使用されるノンパラメトリック統計検定です。主に、分散の正規性と均質性の仮定が満たされない場合に使用され、繰り返し測定ANOVAのノンパラメトリック版となります。

前提設定

  • 対応の有無:対応あり
  • 正規性:不要
  • 等分散性:不要
  • 群数:3群以上
  • データ尺度:順序尺度

仮説の設定

  • 帰無仮説(H0:各群間に有意差はない。
  • 対立仮説(H1:少なくとも1つの群間に有意差がある。

Rでフリードマン検定

関数と引数オプション

フリードマン検定を行うための基本的な関数はfriedman.testです。この関数には以下のような引数があります。

# データのyを指定し、groupsとblocksを指定する
friedman.test(y, groups, blocks, ...)

# データのy、groups、blocksを指定する
friedman.test(y, groups, blocks, ...)

# データフレームと式を使用する場合
friedman.test(formula, data, subset, na.action, ...)
  • y:数値データ値のベクトル、またはデータマトリックスのいずれか。
  • groups:yがベクトルの場合、対応する要素のグループを示すベクトル。yがマトリックスの場合は無視される。factorオブジェクトでない場合は、factorに強制変換される。
  • blocks:yがベクトルの場合、対応する要素のブロックを示すベクトル。yがマトリックスの場合は無視される。factorオブジェクトでない場合は、factorに強制変換される。
  • formula:a ~ b | cの形式の式。a、b、およびcはそれぞれデータ値、対応するグループ、およびブロックを示す。
  • data:省略可能なマトリックスまたはデータフレーム(または類似のもの:model.frameを参照)で、formula内の変数を含む。デフォルトでは、変数はenvironment(formula)から取得される。
  • subset:使用する観察のサブセットを指定する省略可能なベクトル。
  • na.action:データにNAが含まれている場合に何を行うべきかを示す関数。デフォルトはgetOption("na.action")。
  • :メソッドからまたはメソッドへのさらに多くの引数。

コード例と結果の見方

以下に、実際にRコードを使ってフリードマン検定を行う例を示します。

# サンプルデータの作成
# 植物の成長に対する3つの異なる肥料の効果を比較する
data <- data.frame(
  growth = c(21, 20, 19, 18, 30, 29, 28, 25, 40, 39, 38, 37),
  fertilizer = factor(rep(c("A", "B", "C"), each = 4)),
  block = factor(rep(1:4, 3))
)

# フリードマン検定の実行
friedman.test(growth ~ fertilizer | block, data = data)
Friedman rank sum test

data:  growth and fertilizer and block
Friedman chi-squared = 8, df = 2, p-value = 0.01832

この結果から、有意水準を5%とするとき、p値が0.01832であることから帰無仮説を棄却し、少なくとも一つの群間に有意差があると結論できます。


この記事はフリードマン検定について紹介しました。

次回はマクネマー検定の方法について紹介します。

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