目的 Linear-by-Linear 検定(Mantel の傾向検定)を行う。結果は htest オブジェクトとして返される。 注:コクラン・アーミテージ検定のトレンドを表すカイ二乗値(CA)と 本検定のカイ二乗値(M)には,全サンプルサイズを n としたとき, CA = M*n/(n-1) の関係がある。 使用法 Mantel(r.i, n.i, x.i=1:length(r.i)) 引数 r.i 反応数のベクトル n.i ケース数のベクトル X.i 外的基準。省略されたときは1から始まる整数値が仮定される ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/Linear_by_Linear.R", encoding="euc-jp") # Linear-by-Linear検定(Mantel の傾向検定) Mantel <- function( r.i, # 反応数のベクトル n.i, # ケース数のベクトル x.i=seq(along=r.i)) # 外的基準。省略されたときは1から始まる整数値が仮定される { data.name <- paste(deparse(substitute(r.i)), "out of", deparse(substitute(n.i)), ",\n using scores:", paste(x.i, collapse = " ")) method <- "Linear-by-Linear検定(Mantel の傾向検定)" x <- rep(c(x.i, x.i), c(r.i, n.i-r.i)) # 外的基準の展開 n.r <- sum(r.i) # 反応総数 y <- rep(1:2, c(n.r, sum(n.i)-n.r)) # 反応あり・なしの 2 値データを展開 s <- (sum(n.i)-1)*cor(x, y)^2 # 検定統計量 df <- 1 p <- pchisq(s, df, lower.tail=FALSE) names(s) <- "X-squared" names(df) <- "df" return(structure(list(statistic=s, parameter=df, p.value=p, method=method, data.name=data.name), class="htest")) } インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/wilcoxon_score.R", encoding="euc-jp") # ウィルコクソン・スコア(平均順位) wilcoxon.score <- function(n) # カテゴリーの度数ベクトル { a <- cumsum(n) a <- c(0, a[-length(a)]) return(a+(n+1)/2) # カテゴリーのウィルコクソン・スコア } 使用例 x.i <- c(10, 20, 30, 40, 50) # 各群の外的基準変数の値 n.i <- c(30, 35, 47, 21, 45) # 各群のケース数 r.i <- c(2, 4, 14, 13, 39) # 各群の反応ケース数 Mantel(r.i, n.i, x.i) # 例題の場合は,第三引数を省略しても同じ結果になる score <- wilcoxon.score(n.i) Mantel(r.i, n.i, score) # 外的基準としてウィルコクソン・スコア(平均順位)を使う 出力結果例 > x.i <- c(10, 20, 30, 40, 50) # 各群の外的基準変数の値 > n.i <- c(30, 35, 47, 21, 45) # 各群のケース数 > r.i <- c(2, 4, 14, 13, 39) # 各群の反応ケース数 > Mantel(r.i, n.i, x.i) # 例題の場合は,第三引数を省略しても同じ結果になる Linear-by-Linear検定(Mantel の傾向検定) data: r.i out of n.i , using scores: 10 20 30 40 50 X-squared = 68.1875, df = 1, p-value < 2.2e-16 > score <- wilcoxon.score(n.i) > Mantel(r.i, n.i, score) # 外的基準としてウィルコクソン・スコア(平均順位)を使う Linear-by-Linear検定(Mantel の傾向検定) data: r.i out of n.i , using scores: 15.5 48 89 123 156 X-squared = 67.7033, df = 1, p-value < 2.2e-16