目的 McNemar 検定を行う。 対応のある測定値は順序尺度以上であれば 2 値データでなくてもよい。 (McNemar 検定の拡張であり,符号検定と同じ検定になる) 使用法 McNemar(tbl) 引数 tbl クロス集計表 ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/McNemar.R", encoding="euc-jp") # マクネマー検定 McNemar <- function(tbl) # 分割表 { data.name <- deparse(substitute(tbl)) method <- "拡張されたマクネマー検定(二項検定に帰着)" n1 <- sum(tbl[lower.tri(tbl)]) # x の方が大きいデータ対の数 n2 <- sum(tbl[upper.tri(tbl)]) # y の方が大きいデータ対の数 p <- binom.test(c(n1, n2))$p.value # 二項検定の両側確率 names(n1) <- "n1" names(n2) <- "n2" return(structure(list(statistic=n1, parameter=n2, p.value=p, method=method, data.name=data.name), class="htest")) } 使用例 tbl <- matrix(c( # 分割表 11, 3, 2, 4, 9, 5, 1, 2, 13 ), ncol=3, byrow=TRUE) McNemar(tbl) 出力結果例 拡張されたマクネマー検定(二項検定に帰着) data: tbl n1 = 7, n2 = 10, p-value = 0.6291 n1 x の測定値が y より大きいデータ対の数 n2 x の測定値が y より小さいデータ対の数 p-value P 値(二項検定による正確な両側確率) 注 R には mcnemar.test という関数があり,やはりマクネマー検定の拡張を定義している。 しかし,これは上に定義したのとは別の拡張である。 解説ページ