こんにちは。ほしのはやしです。
臨床研究や実験研究では、同じ対象に対して繰り返し測定を行うことがあります。
たとえば、薬を投与する前、投与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の符号付順位検定を使う方が適切 |
群ごとの測定回数が異なる | 対応のデータでない可能性 → 不適 |
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検定については、以下のページも参考にしてください!


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