マクネマー検定     Last modified: Aug 19, 2009

目的

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 という関数があり,やはりマクネマー検定の拡張を定義している。
しかし,これは上に定義したのとは別の拡張である。

・ 解説ページ


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI

Made with Macintosh