3.2 パラメトリック検定関数
3.2.6 Cochran-Mantel-Haenszel カイ 2 乗検定 mantelhaen.test()
mantelhaen.test()
は,3
次の相互作用が無いという仮定の下で,二つの名義尺度変数が各層毎に条件付き独立であるという帰無仮説の
Cochran-Mantel-Haenszel
カイ2
乗 検定を実行する.書式:
mantelhaen.test(x, y = NULL, z = NULL,
alternative = c("two.sided", "less", "greater"), correct = TRUE, exact = FALSE, conf.level = 0.95)
引数:
x
各次元が少なくとも2
で最後が層に対応する配列形式の3
元配置分割表か,少な くとも2
水準を持つ因子オブジェクトy
少なくとも2
水準を持つ因子オブジェクト.もしx
が配列なら無視z
少なくとも2
水準を持つ因子オブジェクトで,x
とy
中の要素がどの層に属するかを指定する.もし
x
が配列なら無視されるalternative
対立仮説."two.sided", "greater"
もしくは"less"
.最初の一文 字だけでよい.2 × 2 × K
ケースだけで使われるcorrect
論理値.検定統計量を計算するとき連続補正をするかどうかを指示する.2 × 2 × K
ケースだけで使われるexact
論理値.Mantel-Haenszel
検定を使うか,(
層の周辺和を与えた)
正確な条件付 き検定を使うかを指示する.2 × 2 × K
ケースだけで使われるconf.level
信頼区間の信頼係数.2 × 2 × K
ケースだけで使われる 返り値: クラス"htest"
のオブジェクトで,次の成分を持つリスト:statistic
正確検定が使われないときだけ存在する.古典的な2 × 2 × K
表の場合(
背景変数が二値のケース)
,Mantel-Haenszel
カイ2
乗検定統計量,さもなけれ ば一般化されたCochran-Mantel-Haenszel
統計量parameter
検定統計量の近似カイ2
乗分布の自由度(
古典的ケースでは1)
.正確検定 が使われないときだけ存在するp.value
検定のp
値conf.int
共通オッヅ比に対する信頼区間.2 × 2 × K
ケースだけ存在するestimate
共通オッヅ比に対する推定値.もし正確検定が実行されると,条件付き最尤推定量が与えられる.さもなければ
Mantel-Haenszel
推定値.2 × 2 × K
ケー スだけ存在するnull.value
帰無仮説下での共通オッヅ比.2 × 2 × K
ケースだけ存在するalternative
対立仮説を示す文字列.2 × 2 × K
の場合だけ存在するmethod
どのようなタイプの検定が使われたか,連続補正が使われたかを示す文字列data.name
データの名前を与える文字列もし
x
が配列なら,各次元は少なくとも2
でなければならず,要素は非負整数である 必要がある.欠損値NA
は許されない.さもなければx, y
そしてz
は同じ長さを持つ必 要がある.NA
を含む三つ組は除かれる.全ての変数は少なくとも2
つの異なった値を持 たねばならない.注意:漸近分布は
3
次の相互作用が無いときだけ意味を持つ.古典的な2 × 2 × K
ケー スでは,これは各層での条件付きオッヅ比が同一であることと同値である.現在のとこ ろ,オッヅ比の同一性に対する如何なる検査もされない.以下の例を見よ.# 兎への致死的なβ溶血連鎖球菌の注射に対する,直後と一時間半後のペニシリン注射の効果
> Rabbits
<-array(c(0,0,6,5, 3,0,3,6, 6,2,0,4, 5,1,6,0, 2,5,0,0), dim = c(2, 2, 5),
dimnames = list(Delay = c("None", "1.5h"), Response = c("Cured", "Died"),
Penicillin.Level = c("1/8","1/4","1/2","1","4")))
> mantelhaen.test(Rabbits) # 古典的 Mantel-Haenszel検定
Mantel-Haenszel chi-squared test with continuity correction
data: Rabbits # 5%有意
Mantel-Haenszel X-squared = 3.9286, df = 1, p-value = 0.04747 # 1%有意でない alternative hypothesis: true common odds ratio is not equal to 1
95 percent confidence interval: 1.026713 47.725133 # 95%信頼区間
sample estimates: common odds ratio 7 # オッヅ比の推定値
> mantelhaen.test(Rabbits, exact = TRUE) # 正確な条件付き検定
Exact conditional test of independence in 2 x 2 x k tables data: Rabbits
S = 16, p-value = 0.03994 # 5%有意
alternative hypothesis: true common odds ratio is not equal to 1 # 1%有意でない 95 percent confidence interval: 1.077401 529.837399
sample estimates: common odds ratio 10.36102
# 「直後の注射により高い治癒率」という片側対立仮説に対する正確な条件付き検定
> mantelhaen.test(Rabbits, exact = TRUE, alternative = "greater") Exact conditional test of independence in 2 x 2 x k tables data: Rabbits
S = 16, p-value = 0.01997 # 5%有意
alternative hypothesis: true common odds ratio is greater than 1 # 1%有意でない 95 percent confidence interval: 1.384239 Inf
sample estimates: common odds ratio 10.36102
# UC Berkley校の入学希望者データUCBAdmissionsを使用
> mantelhaen.test(UCBAdmissions)
Mantel-Haenszel chi-squared test with continuity correction data: UCBAdmissions
Mantel-Haenszel X-squared = 1.4269, df = 1, p-value = 0.2323 alternative hypothesis: true common odds ratio is not equal to 1 95 percent confidence interval: 0.7719074 1.0603298
sample estimates: common odds ratio 0.9046968
# 学部の違いで補正すれば入学者と性別に関連があるという証拠は無い
# しかし(条件付きの)オッヅ比を検査すると一様とは思われない
> apply(UCBAdmissions, 3, function(x) (x[1,1]*x[2,2])/(x[1,2]*x[2,1]))
A B C D E F
0.3492120 0.8025007 1.1330596 0.9212838 1.2216312 0.8278727
# 交互作用に対する伝統的なWoolf検定で調べてみるとp値0.003
# これは有意な異質性を示唆し,Mantel-Haenszel検定を使うべきではない
> woolf <- function(x) {
x <- x + 1 / 2; k <- dim(x)[3]
or <- apply(x, 3, function(x) (x[1,1]*x[2,2])/(x[1,2]*x[2,1])) w <- apply(x, 3, function(x) 1 / sum(1 / x))
1 - pchisq(sum(w * (log(or) - weighted.mean(log(or), w)) ^ 2), k - 1) }
> woolf(UCBAdmissions) [1] 0.003427200
3.2.7 一元配置正規標本の平均の同一性検定 oneway.test()
oneway.test()
は一元配置の2
もしくはそれ以上の正規標本の平均の同一性を検定する.分散は必ずしも同一でなくても良い.
書式:
oneway.test(formula, data, subset, na.action, var.equal = FALSE)
引数:formula
形式lhs~rhs
のモデル式で,lhs
はデータ値,rhs
は対応するグループdata
モデル式中の変数を含むオプションのデータフレームsubset
観測値の部分集合を指示するオプションのベクトルna.action
欠損値の処理を指示する関数.既定はgetOption("na.action")
var.equal
論理値.標本の分散が同一と見なすかどうかを指示する.TRUE
なら一元配置分散分析による平均の同一性に対する単純な
F
検定が実行される.もしFALSE
ならWelch
の近似検定が使われる.これは普通の二標本Welch
検定を任 意多標本に拡張したものである返り値: クラス
"htest"
のオブジェクトで,次の成分を持つリスト:statistic
検定統計量の値parameter
検定統計量の正確もしくは近似F
分布の自由度p.value
検定のp
値method
どのタイプの検定が使われたかを示す文字列data.name
データの名前を与える文字列.
関連:二標本に対する特殊例である標準
t
検定t.test()
.一元配置に於ける位置パラ メータの同一性に対するノンパラメトリック検定kruskal.test()
.# Studentの睡眠薬データsleepを使用.分散の同一性を仮定しない場合
# 睡眠薬の効き目の同一性は有意水準5%で棄却できず
> oneway.test(extra ~ group, data = sleep)
One-way analysis of means (not assuming equal variances) data: extra and group
F = 3.4626, num df = 1.000, denom df = 17.776, p-value = 0.0794
# 分散の同一性を仮定した場合(同一性は有意水準5%で棄却できない)
> oneway.test(extra ~ group, data = sleep, var.equal = TRUE) One-way analysis of means
data: extra and group
F = 3.4626, num df = 1, denom df = 18, p-value = 0.07919
> anova(lm(extra ~ group, data = sleep)) # 分散分析は同じ結果を与える Analysis of Variance Table
Response: extra
Df Sum Sq Mean Sq F value Pr(>F) group 1 12.482 12.482 3.4626 0.07919 . Residuals 18 64.886 3.605
---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
3.2.8 複数のグループの比率の同一性の検定 prop.test()
prop.test()
は複数のグループの比率(
成功確率)
が等しい,または与えられた値に等しいという帰無仮説を検定する.
書式:
prop.test(x, n, p = NULL,
alternative = c("two.sided", "less", "greater"), conf.level = 0.95, correct = TRUE)
引数:
x
成功回数のベクトル,または成功・失敗回数を与える二つの列を持つ行列n
試行回数のベクトル.もしx
が行列ならば無視されるp
成功確率のベクトル.p
の長さはx
で指定されるグループ数と同じ必要alternative
対立仮説."two.sided", "greater"
もしくは"less"
のいずれか.最初の一文字だけでよい.単一の母集団の比率が指定値に等しいか,二つの比率 が等しいという帰無仮説の検定だけで使われる.さもなければ無視される
conf.level
返される信頼区間の信頼係数.単一の母集団の比率が指定値に等しいか,二つの比率が等しいという帰無仮説の検定だけで使われる.さもなければ無視
correct
論理値.Yates
の連続補正をするか返り値: クラス
"htest"
のオブジェクトで,次の成分を持つリスト:statistic Pearson
のカイ2
乗検定統計量の値parameter
検定統計量の近似カイ2
乗分布の自由度p.value
検定のp
値estimate
標本比率x/n
のベクトルconf.int
グループが一つなら真の比率,二つのグループがありp
が与えられなければ比率の差に対する信頼区間.さもなければ
NULL
.これがNULL
でない場合は 返される信頼区間はconf.level
で指定される漸近信頼水準を持ち,指定された 対立仮説に対応するnull.value
帰無仮説で指定された場合のp
の値,さもなければNULL alternative
対立仮説を示す文字列method
どのようなタイプの検定が使われたか,Yates
連続補正行ったかを示す文字列data.name
データの名前を与える文字列.
成功・失敗回数が有限であるグループだけが使われる.成功・失敗回数は非負で,した がって正でなければならない対応する試行回数よりも大きくてはいけない.全ての有限な カウント数は整数でなければならない.
もし
p
がNULL
で,複数のグループがあれば,検定される帰無仮説は各グループの比率 が等しいというものである.もし二つのグループがあれば,対立仮説はalternative
で 指定された内容に応じて,第一グループの成功確率が第二グループのそれよりも「より小 さい」,「等しくない」そして「より大きい」である.conf.level
で指定された信頼係数 を持つ,比率の差異に対する信頼区間は区間[ − 1, 1]
中に切り詰められる.連続補正は,それが絶対値で標本比率差を越えないときだけ使われる.さもなければ,もし
3
つ以上の グループがあれば,対立仮説は常に"two.sided"
であり,返される信頼区間はNULL
で あり,連続補正は決して使われない.もし一つのグループだけがあれば,検定される帰無仮説は根底にある成功確率が
p
であるというものである.もしp
が与えられなければp=0.5
とされる.対立仮説はalternative
で指定された内容に応じて,成功確率がp
もしくは0.5
より「小さい」,「等しくない」そして「大きい」となる.
conf.level
で指定された信頼係数を持つ,比 率の差異に対する信頼区間は区間[ − 1, 1]
中に切り詰められる.連続補正は,それが絶対 値で標本比率と帰無仮説比率の差を越えないときだけ使われる.信頼区間はスコア検定を 逆転して計算される.最後に,もし
p
が与えられ二つ以上のグループがあれば,帰無仮説は根底にある成功確 率がp
で与えられたものになるということである.対立仮説は常に"two.sided"
であ り,返される信頼区間はNULL
であり,連続補正は決して使われない.関連:二項分布仮説に対する正確検定
binom.test()
.> heads <- rbinom(1, size=100, pr = .5)
> prop.test(heads, 100) # 既定で連続補正される
1-sample proportions test with continuity correction data: heads out of 100, null probability 0.5
X-squared = 0.01, df = 1, p-value = 0.9203 alternative hypothesis: true p is not equal to 0.5 95 percent confidence interval: 0.4086512 0.6105719 sample estimates: p 0.51
> prop.test(heads, 100, correct = FALSE)
1-sample proportions test without continuity correction data: heads out of 100, null probability 0.5
X-squared = 0.04, df = 1, p-value = 0.8415 alternative hypothesis: true p is not equal to 0.5 95 percent confidence interval: 0.4134801 0.6057800 sample estimates: p 0.51
# 帰無仮説「患者が属する4つの母集団が同じ喫煙者比率を持つ」.1%有意
> smokers <- c( 83, 90, 129, 70 )
> patients <- c( 86, 93, 136, 82 )
> prop.test(smokers, patients)
4-sample test for equality of proportions without continuity correction
data: smokers out of patients
X-squared = 12.6004, df = 3, p-value = 0.005585 alternative hypothesis: two.sided
sample estimates: prop 1 prop 2 prop 3 prop 4 0.9651163 0.9677419 0.9485294 0.8536585