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

Made with Macintosh