Linear-by-Linear 検定(Mantel の傾向検定) Last modified: Aug 19, 2009
目的
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
直前のページへ戻る
E-mail to Shigenobu AOKI