ある割合が順序に沿って単調変化しているかどうかをみたいときはCochran-Armitage検定を使う。
以下のような3群(A,B,C)で2値変数を測定したサンプルデータを作成して実行してみる。
> group <- c(rep("A",10),rep("B",10),rep("C",10)) > response <- c(rep(0,8),rep(1,2),rep(0,4),rep(1,6),0,rep(1,9)) > (tbl <- table(response, group)) group response A B C 0 8 4 1 1 2 6 9
検定実行の事前準備
各群のresponse=1の数をn_pos
、各群の合計数をn_total
とする。
> (n_pos <- tbl[2,]) A B C 2 6 9 > (n_total <- apply(tbl,2, sum)) A B C 10 10 10
グラフを描くと、
barplot(n_pos/n_total)
A, B, Cの順にresponse=1の割合が増えている傾向が見られる。
prop.trend.test( )を使って傾向性を検定する
指定する引数の概要は以下のとおり。
- 各カテゴリーにおける陽性数
- 各カテゴリーにおける合計数
- 各カテゴリーに与えるスコア
> prop.trend.test(n_pos, n_total,score) Chi-squared Test for Trend in Proportions data: n_pos out of n_total , using scores: 1 2 3 X-squared = 9.9774, df = 1, p-value = 0.001585
P-value for trendは0.001585で、(このスコアでは)傾向性が示された。
おわりに
- 見かけることは多い割に、あまり使う機会がないような気がする(回帰モデルを使うことが多いから?)
- 妻が「ネコの食欲がない、痩せてきている」といって病院に行ったら500g増えていた(保護時3.9kg→4.4kg)