• 検索結果がありません。

ノンパラメトリック検定関数

ドキュメント内 ためになった他の人のサイト script of (ページ 47-61)

ノンパラメトリック検定

(nonparametric test)

とは,通常母集団分布に対しては密度 関数を持つことだけを仮定し,順序

(

特にランク

)

統計量を基礎とする検定統計量を用い る検定のことである.これらの検定関数の中にはオプションでパラメトリック検定を実行 できるものもある.

3.1.1 Ansari-Bradley のスケール差に対する二標本検定 ansari.test()

書式:

#

既定のメソッド

ansari.test(x, y, alternative = c("two.sided", "less", "greater"), exact = NULL, conf.int = FALSE, conf.level = 0.95, ...)

#

クラス

"formula"

に対する

S3

メソッド

ansari.test(formula, data, subset, na.action, ...)

引数:

x

データ値の数値ベクトル

y

データ値の数値ベクトル

alternative

対立仮説.

"two.sided", "greater"

もしくは

"less"

のいずれか.

最初の一文字だけでよい

exact

論理値.正確な

p

値を計算するか?

conf.int

論理値.信頼区間を計算するか?

conf.level

信頼区間の信頼係数

formula

形式

lhs~rhs

のモデル式で,

lhs

はデータ値を与える数値変数,

rhs

は対 応するグループを与える

2

水準の因子

data

モデル式中の変数を含むオプションのデータフレーム

subset

観測値の部分集合を指示するオプションのベクトル

na.action

欠損値処理を指示する関数.既定

getOption("na.action") ...

メソッドに

(

から

)

引き渡される追加引数

返り値: クラス

"htest"

のオブジェクトで,次の成分を持つリスト:

statistic Ansari-Bradley

検定統計量の値

p.value

検定の

p

null.value

帰無仮説下でのスケール比

s

で常に

1 alternative

対立仮説を示す文字列

method

文字列

"Ansari-Bradley test"

data.name

データ名を示す文字列

conf.int

スケールパラメータの信頼区間

(conf.int=TRUE

の時だけ存在

) estimate

スケール比の推定値

(conf.int=TRUE

の時だけ存在

)

x, y

をそれぞれ密度関数

f ((t − m)/s)/s

f (t − m)

を持つ独立な標本とする.ここで,

m

は未知の局外母数で,スケール比

s

が関心のあるパラメータである.

Ansari-Bradley

検定は

s = 1

という帰無仮説を,両側対立仮説

s 6 = 1 (

二つの分布は分散が違う

)

,片側対 立仮説

s > 1 (x

の分布のほうが分散が大,

"greater")

,もしくは

s < 1 (x

の分布のほ うが分散が小,

"less")

,に対して検定する.

(exact = TRUE

を指定しない限り

)

既定では双方の標本が

50

個未満の有限な観測値を

含みタイ

(

同じ値のデータ

)

がなければ正確な

p

値を計算する.さもなければ,正規近似 が使われる.

オプションで,ノンパラメトリックな信頼区間と

s

の推定値が計算される.もし正確な

p

値が得られれば,

Bauer

で説明されたアルゴリズムを用いて,正確な信頼区間が計算さ

れ,

Hodges-Lehmann

推定量が用いられる.さもなければ,信頼区間と推定量は正規近

似に基づく.

注意:

Ansari-Bradley

検定の結果を,二標本の分散を比較する

F

検定のそれと比較する

ためには,

s

がスケール比であり,したがって

s

2 は分散比

(

存在する限リ

)

になること を注意しよう.

F

検定では分散比自身が興味のあるパラメータである.特に信頼区間は,

Ansari-Bradley

検定では

s

用であるが,

F

検定では

s

2 用である.

関 連:

k

標 本 の 分 散 の 同 一 性 に 対 す る

(

ノ ン パ ラ メ ト リ ッ ク な

)

ラ ン ク に 基 づ く

fligner.test()

.ス ケ ー ル パ ラ メ ー タ の 同 一 性 に 対 す る も う 一 つ の ラ ン ク に よ る 検 定

mood.test()

.分 散 の 同 一 性 に 対 す る パ ラ メ ト リ ッ ク 検 定

var.test(), bartlett.test()

# Hollander & Wolfeの対照血清を用いた血清中の鉄分量定量データ

> ramsay <- c(111, 107, 100, 99, 102, 106, 109, 108, 104, 99, 101, 96, 97, 102, 107, 113, 116, 113, 110, 98)

> jung.parekh <- c(107, 108, 106, 98, 105, 103, 110, 105, 104,

100, 96, 108, 103, 104, 114, 114, 113, 108, 106, 99)

# 例えば有意水準10%で帰無仮説(スケール比が1)は棄却されない

> ansari.test(ramsay, jung.parekh) Ansari-Bradley test

data: ramsay and jung.parekh # 二つのデータ変数名

AB = 185.5, p-value = 0.1815 # 検定統計量値とp

alternative hypothesis: true ratio of scales is not equal to 1 # 両側対立仮説

Warning message: # データにタイがあるため正確なp値が計算不能

Cannot compute exact p-value with ties in:

ansari.test.default(ramsay, jung.parekh)

# 平均は同じだが分散が異なる二組の正規データを使用(95%信頼区間も計算)

# 例えば有意水準10%で帰無仮説(スケール比が1)は棄却されない

> ansari.test(rnorm(10), rnorm(10, 0, 2), conf.int = TRUE) Ansari-Bradley test

data: rnorm(10) and rnorm(10, 0, 2) # 二つのデータ変数名

AB = 65, p-value = 0.1521 # 検定統計量値とp

alternative hypothesis: true ratio of scales is not equal to 1 # 両側対立仮説

95 percent confidence interval: 0.2494223 1.3557745 # スケール比の95%信頼区間

sample estimates: ratio of scales 0.5090272 # 2標本のスケール比の推定値

3.1.2 Fligner-Killeen の分散同一性の ( メディアン ) 検定 fligner.test()

fligner.test()

は各標本群の分散が同一であるという帰無仮説に対する

Fligner-Killeen (

メディアン

)

検定を行う.

書式:

fligner.test(x, ...)

fligner.test(x, g, ...) #

既定の

S3

メソッド

#

クラス

"formula"

に対する

S3

メソッド

fligner.test(formula, data, subset, na.action, ...)

引数:

x

データ値の数値ベクトル,もしくは数値データベクトルのリスト

g x

の対応する要素のグルーピングを与える因子オブジェクトのベクトルで,もし

x

がリストなら無視される

formula

形式

lhs~rhs

のモデル式.

lhs

はデータ値,

rhs

は対応するグループ

data

モデル式中の変数を含むオプションのデータフレーム

subset

観測値の部分集合を指示するオプションのベクトル

na.action

欠損値処理を指示する関数.既定

getOption("na.action") ...

メソッドに

(

から

)

引き渡される追加引数

.

返り値: クラス

"htest"

のオブジェクトで,次の成分を持つリスト:

statistic Fligner-Killeen

のメディアンカイ

2

乗検定統計量

parameter

検定統計量の近似カイ

2

乗分布の自由度

p.value

検定の

p

method

文字列

"Fligner-Killeen test for homogeneity of variances"

data.name

データの名前を与える文字列

もし

x

がリストなら,その成分が分散の同一性を比較される標本とされ,従って数値ベ クトルでなければならない.この場合

g

は無視され,検定は単に

fligner.test(x)

とす れば良い.もし標本がまだリストに含まれていないなら

fligner.test(list(x, ...))

とせよ.さもなければ

x

は数値データベクトルでなければならず,

g

x

と同じ長さの ベクトルか因子オブジェクトで,

x

の対応する要素のグルーピングを与える.

Fligner-Killeen (

メディアン

)

検定は,正規性からの逸脱に対し最も頑健な分散同一性

に対する多くの検定に対するシミュレーション研究から提案された.

Conover, Johnson

を参照せよ.これは

k

標本単純線形ランクで,中心化された標本の絶対値のランクと重 み

a(i) = qnorm((1 + i/(n + 1))/2)

を用いる.ここに移植された版は各標本のメディア ンで中心化されている

(F-K:med X^2

と参照される

)

関連:スケールパラメータの違いに対するランクに基づく二標本検定

ansari.test()

mood.test()

.分散の同一性に対するパラメトリック検定

var.test()

bartlett.test()

# 殺虫剤の効き目データInsectSpraysを使用.0.05>p値>0.01であるから,

# 帰無仮説は有意水準5%で棄却されるが,有意水準1%では棄却されない

> fligner.test(InsectSprays$count, InsectSprays$spray) Fligner-Killeen test for homogeneity of variances data: InsectSprays$count and InsectSprays$spray

Fligner-Killeen:med chi-squared = 14.4828, df = 5, p-value = 0.01282

# モデル式によるデータの指定.bartlett.test()と比較してみよ

> fligner.test(count ~ spray, data = InsectSprays) Fligner-Killeen test for homogeneity of variances data: count by spray

Fligner-Killeen:med chi-squared = 14.4828, df = 5, p-value = 0.01282

3.1.3 Friedman のランク和検定 friedman.test()

friedman.test()

は繰りかえしの無いブロックデータに対する

Friedman

のランク和 検定を行う.

書式:

friedman.test(y, ...)

friedman.test(y, groups, blocks, ...) #

既定の

S3

メソッド

#

クラス

"formula"

に対する

S3

メソッド

friedman.test(formula, data, subset, na.action, ...)

引数:

y

データ値の数値ベクトル,もしくはデータ行列

groups

もし

x

がベクトルなら,その対応するグループを与えるベクトル.もし

y

行列なら無視される.もし因子オブジェクトでなければ,因子に強制変換される

blocks

もし

y

がベクトルならばその対応する要素のブロックを与える.もし

y

が行

列なら無視される.因子オブジェクトでなければ,因子に強制変換される

formula

形式

a ~ b | c

のモデル式で,

a, b, c

はそれぞれデータ値と対応するグ

ループ,ブロック

data

モデル式中の変数を含むオプションのデータフレーム

subset

観測値の部分集合を指示するオプションのベクトル

na.action

欠損値処理を指示する関数.既定

getOption("na.action") ...

メソッドに

(

から

)

引き渡される追加引数

返り値: クラス

"htest"

のオブジェクトで,次の成分を持つリスト:

statistic Friedman

のカイ

2

乗統計量値

parameter

検定統計量の近似カイ

2

乗分布の自由度

p.value

検定の

p

method

文字列

"Friedman rank sum test"

data.name

データの名前を与える文字列

friedman.test()

は繰りかえしの無い完全なブロックデザイン

(

つまり,

groups

blocks

の水準の各組合せに対し,

y

中の観測値が唯一つある

)

を解析するのに使われる.

データの正規性は仮定しない.帰無仮説は

blocks

からの影響を除けば,

y

の位置パラ

メータが

groups

の各々において同じというものである.もし

y

が行列なら,

groups

blocks

はそれぞれ列と行の添字から得られる.

groups

blocks

は欠損値

NA

を含ん ではならない.もし

y

が欠損値を含めば,対応するブロックは除かれる.

関連:

quade.test()

# Hollander & Wolfe の例.一塁をまわる三種類の方法("丸く","鋭角に",そして"鈍角に")を比較

# 18人の選手と3種類の方法毎の,本塁から35フィートの一塁ベース上の位置から,二塁ベースのショ

# ートより15フィートの位置までの二回の走塁時間の平均値を記録した

> RoundingTimes

<-matrix(c(5.40,5.50,5.55,5.85,5.70,5.75,5.20,5.60,5.50,5.55,5.50,5.40, 5.90,5.85,5.70,5.45,5.55,5.60,5.40,5.40,5.35,5.45,5.50,5.35, 5.25,5.15,5.00,5.85,5.80,5.70,5.25,5.20,5.10,5.65,5.55,5.45, 5.60,5.35,5.45,5.05,5.00,4.95,5.50,5.50,5.40,5.45,5.55,5.50, 5.55,5.55,5.35,5.45,5.50,5.55,5.50,5.45,5.25,5.65,5.60,5.40, 5.70,5.65,5.55,6.30,6.30,6.25),

nr = 22, byrow = TRUE,

dimnames=list(1:22, c("Round Out","Narrow Angle","Wide Angle")))

# 走塁時間は一塁をまわる方法には無関係という帰無仮説を否定する強い証拠(0.5%有意)

> friedman.test(RoundingTimes) Friedman rank sum test data: RoundingTimes

Friedman chi-squared = 11.1429, df = 2, p-value = 0.003805

# 織機の縦糸の切断回数データwarpbreaksを使用.結果は縦糸の張力の影響を除けば,切断

# 回数の平均値(の位置パラメータ)は羊毛糸の種類によらないという帰無仮説は棄却されない

> wb <- aggregate(warpbreaks$breaks,

by=list(w=warpbreaks$wool, t=warpbreaks$tension), FUN=mean)

> wb

w t x # wは羊毛糸の種類

1 A L 44.55556 # tは縦糸の張力

2 B L 28.22222 # xは切断回数の平均値

3 A M 24.00000 4 B M 28.77778 5 A H 24.55556 6 B H 18.77778

> friedman.test(wb$x, wb$w, wb$t) Friedman rank sum test data: wb$x, wb$w and wb$t

Friedman chi-squared = 0.3333, df = 1, p-value = 0.5637

> friedman.test(x ~ w | t, data = wb) # モデル式によるデータ指定 Friedman rank sum test

data: x and w and t

Friedman chi-squared = 0.3333, df = 1, p-value = 0.5637

3.1.4 Kruskal-Wallis のランク和検定 kruskal.test()

kruskal.test()

x

分布の位置パラメータが各グループ

(

標本

)

に対して同一である という帰無仮説に対する

Kruskal-Wallis

のランク和検定を行う.対立仮説は少なくとも 一つが異なるというものである.

書式:

kruskal.test(x, ...)

kruskal.test(x, g, ...) #

既定の

S3

メソッド

#

クラス

"formula"

に対する

S3

メソッド

kruskal.test(formula, data, subset, na.action, ...)

引数:

x

データ値の数値ベクトル,もしくは数値データベクトルのリスト

g x

の対応する要素に対するグループを与えるベクトルもしくは因子オブジェクト.

もし

x

がリストなら無視される

formula

形式

lhs~rhs

のモデル式で,

lhs

はデータ値,

rhs

は対応するグループ

data

モデル式中の変数を含むオプションのデータフレーム

na.action

欠損値処理を指示する関数.既定

getOption("na.action") ...

メソッドに

(

から

)

引き渡される追加引数

.

返り値: クラス

"htest"

のオブジェクトで,次の成分を持つリスト:

statistic Kruskal-Wallis

のランク和統計量

parameter

検定統計量の近似カイ

2

乗分布の自由度

p.value

検定の

p

method

文字列

"Kruskal-Wallis rank sum test"

data.name

データの名前を与える文字列

もし

x

がリストなら,その成分が比較される標本とされ,従って数値データベクトルで なければならない.この場合

g

は無視され,検定は単に

kruskal.test(x)

とすれば良

い.もし標本がまだリストに結合されていなければ

kruskal.test(list(x, ...))

と する.さもなければ

x

は数値データベクトルでなければならず,

g

x

と同じ長さのベ クトルか因子オブジェクトで,

x

の対応する要素のグルーピングを与える.

関連:二標本に対する特別な場合である

Wilcoxon

ランク和検定

wilcox.test()

.正規 分布の仮定下での一元配置位置パラメータ解析を行う

lm()

anova()

の組合せ.二標 本に対する特別な場合としての

Student

t

検定

t.test()

# 粘液線毛排除機構の効率性.3グループの分布中心が異なるという帰無仮説は棄却されない

> x <- c(2.9, 3.0, 2.5, 2.6, 3.2) # 健常者

> y <- c(3.8, 2.7, 4.0, 2.4) # 閉塞性気道疾患患者

> z <- c(2.8, 3.4, 3.7, 2.2, 2.0) # 石綿肺症患者

> kruskal.test(list(x, y, z)) Kruskal-Wallis rank sum test data: list(x, y, z)

Kruskal-Wallis chi-squared = 0.7714, df = 2, p-value = 0.68

> x <- c(x, y, z)

> g <- factor(rep(1:3, c(5, 4, 5)), # 同じことだが labels = c("Normal subjects",

"Subjects with obstructive airway disease",

"Subjects with asbestosis"))

> kruskal.test(x, g)

Kruskal-Wallis rank sum test data: x and g

Kruskal-Wallis chi-squared = 0.7714, df = 2, p-value = 0.68

# モデル公式による指定.ニューヨーク市の毎日の大気観測値データairqualityを使用

# 月別のオゾン値の比較.オゾン量の月別データの分布中心は明らかに異なる

> kruskal.test(Ozone ~ Month, data = airquality) Kruskal-Wallis rank sum test

data: Ozone by Month

Kruskal-Wallis chi-squared = 29.2666, df = 4, p-value = 6.901e-06

ドキュメント内 ためになった他の人のサイト script of (ページ 47-61)