【R講座】マクネマー検定の方法と実践

R

この記事では、マクネマー検定について紹介しています。

マクネマー検定とは

マクネマー検定は、対応のある名義尺度データの差を評価するための検定方法です。例えば、ある農薬の効果を評価する際に、同じ作物に対して農薬使用前後の病害発生率を比較するのに使用できます。

前提設定

  • 対応の有無:対応あり(例:同じ作物の農薬使用前後の比較)
  • 正規性:必要なし
  • 等分散性:必要なし
  • 群数:2群
  • データ尺度:名義尺度(例:病害あり/なし)

仮説の設定

  • 帰無仮説(H0:計測の前後で病害発生率に差はない
  • 対立仮説(H1:計測の前後で病害発生率に差がある

Rでマクネマー検定

Rでマクネマー検定を実行する方法を紹介します。

関数と引数オプション

マクネマー検定を実行するために使用する関数は mcnemar.test() です。この関数は、2x2のクロス集計表を入力として受け取ります。

# mcnemar.test(x, y = NULL, correct = TRUE)
  • x: 2次元のクロス集計表を含む行列形式、または factor オブジェクトを指定します。
  • y: factor オブジェクトを指定します。x が行列の場合、この引数は無視されます。
  • correct: 検定統計量を計算する際に連続性補正を適用するかを示す論理値です。補正を適用する場合は TRUE、適用しない場合は FALSE を指定します。

コード例と結果の見方

# サンプルデータの作成
# 農薬使用前後の病害有無データ
data <- data.frame(
  Time = factor(rep(c("Before", "After"), each = 14)),
  Status = factor(c("No", "Yes", "No", "Yes", "No", "Yes", "No", "Yes", "No", "Yes", "No", "Yes", "No", "Yes",
                    "No", "No", "No", "Yes", "Yes", "Yes", "No", "Yes", "No", "Yes", "No", "No", "Yes", "Yes"))
)

# クロス集計表の作成
table <- table(data$Time, data$Status)

# マクネマー検定の実行
mcnemar.test(table)
# マクネマー検定結果
McNemar's Chi-squared test with continuity correction

data:  data
McNemar's chi-squared = 0, df = 1, p-value = 1

この結果から、p値が1であるため、通常の有意水準(例えば0.05)では帰無仮説を棄却できません。つまり、農薬使用前後で病害発生率に統計的な差は見られなかったと結論できます。


この記事はマクネマー検定について紹介しました。

次回はコクランのQ検定の方法について紹介します。

この記事が少しでもお役に立てたら嬉しいです。

プロフィール
この記事を書いた人

農学の博士前期課程を修了した研究者の卵。
植物生理と環境調節をテーマに研究しています。

Masaをフォローする
R統計
Masaをフォローする
タイトルとURLをコピーしました