研究室に配属されたばかりの新入生や、これからRで統計分析を始めたいと思っている方へ向けて、【R講座】では、RとRStudioの基本的な使い方から統計手法の選び方、基本的なデータ分析方法を解説しています。特にRが初めての方でも安心して学べるように、RStudioのクリック操作も紹介していきます。実際のコード例を交えながら進めるので、これからの研究やデータ分析に、役立てていただけたら嬉しいです。

みなさん、こんにちは!
ここでは、この回で紹介したコクランのQ検定について解説しています。
- コクランのQ検定の概要
- コクランのQ検定の方法
- 結果の見方
コクランのQ検定とは

コクランのQ検定は、対応のある名義尺度データの群間の差を評価するための検定方法です。
コクランのQ検定を実施する際には以下の条件を確認します。
- 対応の有無:対応あり
- 正規性:必要なし
- 等分散性:必要なし
- 群数:2群以上
- データ尺度:名義尺度
コクランのQ検定では次の仮説を設定します。
- 帰無仮説(H0):処理の効果に差はない
- 対立仮説(H1):処理の効果に差がある
関数の構造と引数オプション

RでコクランのQ検定を行うには、cochran.qtest()
関数を使用します。
# コクランのQ検定cochran.qtest()
(data, formula)
- data : 検定に使用するデータフレーム。formula 内の変数が含まれている必要がある。
- formula : 検定に用いるデータの構造を指定する式。
- a ~ b | c の形式で指定する。
- a : 目的変数。
- b : 被験者内要因(within-subject factor、処理や条件の変数)。
- c : 被験者識別子(個々の被験者を区別するための一意のカテゴリ変数)。
- a ~ b | c の形式で指定する。
分析の実践

次のステップでデータを分析していきます。
- STEP 1データの読み込み
csvファイルからデータを読み込みます。
- STEP 2データの型変換(キャスト)
読み込んだデータの要因データを、Factor型に変更します。
- STEP 3コクランのQ検定の実行
関数でマンホイットニーのU検定を実行します。cochran.qtest()
- STEP 4結果の出力
計算された結果がコンソールペインに出力されます。
使用するデータ

この講座では、説明のために同じ CSV データを使い回しています。
実際には、データの性質(分布・尺度・サンプル数など)に合わせて、適切な統計検定を選びましょう。
このcsvファイルには次のデータが含まれています。
Subject | Time | Response |
---|---|---|
1 | Start | NoCure |
2 | Start | NoCure |
3 | Start | NoCure |
4 | Start | NoCure |
5 | Start | NoCure |
6 | Start | NoCure |
7 | Start | NoCure |
8 | Start | NoCure |
9 | Start | NoCure |
10 | Start | Cure |
1 | Mid | NoCure |
2 | Mid | NoCure |
3 | Mid | NoCure |
4 | Mid | NoCure |
5 | Mid | NoCure |
6 | Mid | Cure |
7 | Mid | Cure |
8 | Mid | Cure |
9 | Mid | Cure |
10 | Mid | Cure |
1 | End | NoCure |
2 | End | Cure |
3 | End | Cure |
4 | End | Cure |
5 | End | Cure |
6 | End | Cure |
7 | End | Cure |
8 | End | Cure |
9 | End | Cure |
10 | End | Cure |
データの読み込み
まずは、次のコードを使って、オブジェクト「data
」にread.csv()
関数でcsvファイルのデータを代入します。
# データの読み込み
data <- read.csv(file.choose(),
check.names = F)
データの前処理
次に、データの因子変換をします。
Rでは説明変数をFactor型のデータとします。今回の分析ではSubjectとTime
を説明変数とするので、as.factor()
関数でデータ型をcharacter型からFactor型に変更します。
# 説明変数をデータ型をFactor型に変更
data$Subject <- as.factor(data$Subject)
data$Time <- as.factor(data$Time)
実行結果は、Environmentタブで確認できます。
コクランのQ検定
次のコードで検定を実行します。
# コクランのQ検定の実行
cochran.qtest(Response ~ Time | Subject, data = data)
各引数にdata$〇〇と入力すると、次のエラーが発生するので注意が必要です。
cochran.qtest(data$Response ~ data$Time | data$Subject, data = data)
Error in cochran.qtest(data$Response ~ data$Time | data$Subject, data = data) :
incorrect specification for formula
結果の見方
検定を実行した結果は、コンソールペインに表示されます。
Cochran's Q test
data: Response by Time, block = Subject
Q = 12, df = 2, p-value = 0.002479
alternative hypothesis: true difference in probabilities is not equal to 0
sample estimates:
proba in group End proba in group Mid proba in group Start
0.1 0.5 0.9
Pairwise comparisons using Wilcoxon sign test
End Mid
Mid 0.12500 -
Start 0.02344 0.125
P value adjustment method: fdr
この結果から、全体として p 値が 0.05 未満であるため、有意な差があると判断できます。さらに、多重比較の結果から、Start 区と End 区の間に有意な差が認められます。
項目 | 説明 |
---|---|
有意水準 (α) | 帰無仮説を棄却する基準。通常 0.05(5%) や 0.01(1%) を使用する。 例: α = 0.05なら、5%未満の確率で偶然起こる差を「有意」と判断する。 |
p値 | 検定統計量が観測された値以上になる確率。 p値 < 有意水準 (α) なら、統計的に有意と判断し、帰無仮説を棄却する。 |
統計的に有意とは? | 「偶然の変動では説明できない差がある」と判断すること。ただし「実験的に重要」や「因果関係がある」とは限らない。 |
信頼区間 (Confidence Interval, CI) | 母集団の真の値(2つのグループの平均値の差)が含まれる範囲を示す。例えば 95%信頼区間 は、繰り返し実験したときに95%の確率で真の値(平均値の差)を含む。 |
信頼区間と有意性の関係 | もし信頼区間が ゼロ(または比較対象の値)を含まなければ、統計的に有意と判断できる。 例:平均差の95%信頼区間が (0.5, 2.3) なら、有意水準5%で有意。 |
注意点 | 統計的有意でも「効果の大きさ(実用的な意味)」とは異なる。 p値が大きくても「差がない」とは言えない(サンプル数が少ない可能性)。 |
まとめ
- コクランのQ検定の概要
- ノンパラメトリック・名義尺度・2群以上
- コクランのQ検定の方法
cochran.qtest()関数
- 結果の見方
- 有意水準・p値・信頼区間から判断
- 統計的な意味と実用的な意味に注意

ここでは、Rを使用してコクランのQ検定を行う方法について解説しました。
Rでは、コードの文法が正しければどんな統計手法でも計算が実行されてしまうため、結果が出たからといって安心するのは危険です。統計解析では、データの種類や前提条件に適した手法を選ぶことが重要であり、誤った検定を適用すると意味のない結果を得てしまう可能性があります。
そのため、単にコードを動かすだけでなく、
- データの分布(正規分布かどうか)
- 変数の尺度(カテゴリーデータか、連続データか)
- サンプルサイズ(母数が少ないと適さない検定もある)
などを考慮し、統計の知識をもとに適切な解析方法を選択する必要があります。