【初心者向けR講座】Friedman検定とは?繰り返し測定データに使えるノンパラメトリック検定

  • URLをコピーしました!

こんにちは。ほしのはやしです。

臨床研究や実験研究では、同じ対象に対して繰り返し測定を行うことがあります。

たとえば、薬を投与する前、投与1週間後、投与1ヶ月後に血圧を測定した場合などです。
こうした対応のある3群以上の比較に使えるノンパラメトリックな手法がFriedman検定(フリードマン検定)です。

本ページでは、Friedman検定の概要、使用場面、臨床・実験の具体例、使えない場合、そしてRスクリプトまで、初心者向けにわかりやすく解説します。

目次

Friedman検定とは?

Friedman検定は、対応のある3群以上のデータを比較するためのノンパラメトリック検定です。
対応のあるANOVA(繰り返し測定の分散分析:One-way RM ANOVA)に相当しますが、データが正規分布に従っていない場合でも使えるのが特徴です。

  • データが順位(ランク)に基づいて比較される
  • 被験者間の違いをコントロールしたいときに便利
  • 有意差があった場合は多重比較(Nemenyi検定など)を行う

どんな時に使うのか?

臨床研究の例

目的:糖尿病患者における新薬のHbA1cへの効果を評価
方法:投与前、4週間後、12週間後のHbA1c値を同一被験者で測定
→ Friedman検定を使って、時点による差を検討

実験研究の例

目的:マウスにおける運動習慣が腸内細菌叢に与える影響を評価
方法:10匹のマウスに同じ運動メニューを課し、週ごと(運動前、1週後、3週後)に糞便を採取して菌叢を解析
→ 同じマウスから繰り返しデータが得られるため、Friedman検定が適切

使えないケース

Friedman検定は便利ですが、以下のような場面では使えません:

ケース使えない理由
それぞれの群が独立している対応がない → Kruskal-Wallis検定を使う
データが2群しかないWilcoxonの符号付順位検定を使う方が適切
群ごとの測定回数が異なる対応のデータでない可能性 → 不適

❌ コントロール群と治療群の時系列の変化の差を検討したいときは使えません!

・コントロール群10名、治療群10名
・それぞれの群で、投与前・投与1ヶ月後・投与3ヶ月後のHbA1cを測定
・「治療群の方が、時間とともにより大きく改善しているか?」を検討したい

このような「群 × 時間の交互作用を見たい」場合は、Friedman検定は不適です!

Rでの実際のスクリプト

ここでは、3時点で測定したHbA1cのデータを使って、Friedman検定を実施する例を示します。

サンプルデータの作成

# サンプルデータ
patient_id <- 1:10
pre <- c(7.2, 8.1, 6.9, 7.5, 8.0, 7.3, 7.9, 7.8, 7.6, 8.2)
week4 <- c(6.9, 7.7, 6.7, 7.1, 7.6, 7.0, 7.4, 7.3, 7.2, 7.8)
week12 <- c(6.5, 7.3, 6.5, 6.8, 7.2, 6.8, 7.0, 7.1, 6.9, 7.5)

data <- data.frame(patient_id, pre, week4, week12)

Friedman検定の実行

# 検定する部分を抽出したテーブルを作成
data_matrix <- as.matrix(data[, 2:4])
rownames(data_matrix) <- data$patient_id  # ここが重要

# Friedman検定
friedman.test(data_matrix)

→ p < 0.05なので、時点によって有意な差があると判断されます

有意差があった場合の多重比較(Nemenyi検定

Friedman検定で有意差があった場合、どのペアに差があるかを確認するためにNemenyi検定などを行う必要があります。

# Nemenyiによる多重比較
install.packages("PMCMRplus")
library(PMCMRplus)

frdAllPairsNemenyiTest(y = data_matrix)

この部分が多重比較でのp値になります!

Friedman検定後の多重比較でよく使われる手法まとめ

検定名特徴使用場面
Nemenyi検定全ペア間を一括比較(Tukeyのようなもの)保守的検出力よりも厳密さを優先したいとき
Bonferroniなど補正付きWilcoxonの符号付順位検定ペアごとにWilcoxonで検定し、p値を補正比較する組が少ないときに強い(例:3条件)
Dunn検定Kruskal-Wallisに対応した多重比較法だが、Friedman後にも応用可能柔軟で実装しやすく、Rでも利用しやすい
Conover検定conover.testより検出力が高く、Nemenyiより有利なことがある多数の比較がある場合におすすめ
Quade検定(Friedmanの改良版)Friedmanよりも処理間の違いに敏感観測値のばらつきが大きいとき

保守的とはどういうこと?

厳密に検定するため有意差が出にくくなります。

Nemenyi検定は保守的で、実験系などの小さなサンプルサイズでは有意差を見つけにくい傾向があります。そのため、Friedman検定後の多重比較においては、検出力が高いConover検定が代わりに用いられることがあります。

frdAllPairsConoverTest(y = data_matrix)
星柴くん

Friedman検定とpost-hoc解析について学んだのだ!

黒星柴くん

繰り返し測定データをうまく解析して変化が事実か確かめるんやで!

まとめ

Friedman検定の概略とRでの使い方をまとめました!

項目内容
検定名Friedman検定
使用場面同一対象への繰り返し測定(3群以上)
対応のない場合Kruskal-Wallis検定
分布の仮定不要(ノンパラメトリック)
多重比較Nemenyi検定などが必要

対応のない場合のKruskal-Wallis検定については、以下のページも参考にしてください!

皆様のお役に立てたなら幸いです。

  • URLをコピーしました!

この記事を書いた人

柴犬をこよなく愛する読書家。
街歩きとお菓子作りを趣味にしています。
研究や論文に役立つ情報をわかりやすくお伝えします。

コメント

コメントする

目次