【R講座】コクランのQ検定

R講座

研究室に配属されたばかりの新入生や、これから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 : 被験者識別子(個々の被験者を区別するための一意のカテゴリ変数)。

分析の実践

次のステップでデータを分析していきます。

RでコクランのQ検定の手順
  • STEP 1
    データの読み込み

    csvファイルからデータを読み込みます。

  • STEP 2
    データの型変換(キャスト)

    読み込んだデータの要因データを、Factor型に変更します。

  • STEP 3
    コクランのQ検定の実行

    cochran.qtest()関数でマンホイットニーのU検定を実行します。

  • STEP 4
    結果の出力

    計算された結果がコンソールペインに出力されます。

使用するデータ

この講座では、説明のために同じ CSV データを使い回しています。
実際には、データの性質(分布・尺度・サンプル数など)に合わせて、適切な統計検定を選びましょう。

csvファイル

このcsvファイルには次のデータが含まれています。

SubjectTimeResponse
1StartNoCure
2StartNoCure
3StartNoCure
4StartNoCure
5StartNoCure
6StartNoCure
7StartNoCure
8StartNoCure
9StartNoCure
10StartCure
1MidNoCure
2MidNoCure
3MidNoCure
4MidNoCure
5MidNoCure
6MidCure
7MidCure
8MidCure
9MidCure
10MidCure
1EndNoCure
2EndCure
3EndCure
4EndCure
5EndCure
6EndCure
7EndCure
8EndCure
9EndCure
10EndCure

データの読み込み

まずは、次のコードを使って、オブジェクト「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 区の間に有意な差が認められます。

有意水準・p値・信頼区間
項目説明
有意水準 (α)帰無仮説を棄却する基準。通常 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では、コードの文法が正しければどんな統計手法でも計算が実行されてしまうため、結果が出たからといって安心するのは危険です。統計解析では、データの種類や前提条件に適した手法を選ぶことが重要であり、誤った検定を適用すると意味のない結果を得てしまう可能性があります。

そのため、単にコードを動かすだけでなく、

  • データの分布(正規分布かどうか)
  • 変数の尺度(カテゴリーデータか、連続データか)
  • サンプルサイズ(母数が少ないと適さない検定もある)

などを考慮し、統計の知識をもとに適切な解析方法を選択する必要があります。

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