ヨンクヒール・タプストラ検定と読む。
ある変数がカテゴリーの順序に沿って単調変化しているかどうかをみる。
ノンパラメトリック検定で、Kruskal-Wallis検定と似たようなもの(?)らしい。
今回はオレンジの木の周囲長のデータを使う。
順序付きカテゴリー変数Treeの順に周囲長circumferenceが単調増加(あるいは減少)しているかを調べる。
(この仮説に意味があるかどうかは考えない)
> data(Orange) > str(Orange) Classes ‘nfnGroupedData’, ‘nfGroupedData’, ‘groupedData’ and 'data.frame': 35 obs. of 3 variables: $ Tree : Ord.factor w/ 5 levels "3"<"1"<"5"<"2"<..: 2 2 2 2 2 2 2 4 4 4 ... $ age : num 118 484 664 1004 1231 ... $ circumference: num 30 58 87 115 120 142 145 33 69 111 ... > boxplot(circumference~Tree,data=Orange)
jonckheere.test( )を使って傾向性検定を行う
library(clinfun) attach(Orange) jonckheere.test(circumference, Tree)
jonckheere.test(x, g)
では、
- xに比較する連続変数
- gに順序カテゴリー変数
を指定する。
> jonckheere.test(circumference, Tree) Jonckheere-Terpstra test data: JT = 314.5, p-value = 0.04342 alternative hypothesis: two.sided 警告メッセージ: jonckheere.test(circumference, Tree) で: Sample size > 100 or data with ties p-value based on normal approximation. Specify nperm for permutation p-value
サンプルサイズ>100のときや、データに同じ数値があるときは上のようなメッセージが出る。
パーミュテーション法でP値を求める
パーミュテーション(=並べ替え)検定は次の手順で行われる。
- 元のデータを並べ替えたデータから統計量を計算することを繰り返し、統計量全体の分布を得る。
- その分布全体の中で、元のデータの統計量がどれくらい極端なのかを判定する(「極端さ」が全体の上位5%ならP=0.05など)。
nperm
でパーミュテーションの回数を指定する。
大きい方がP値の有効数字が多く(細かく)なる。
1000以上の数値を指定することが推奨される。
> jonckheere.test(circumference, Tree, nperm=2000) Jonckheere-Terpstra test data: JT = 314.5, p-value = 0.048 alternative hypothesis: two.sided
おわりに
- Cochran-Armitage検定よりさらに見かける機会が少ない