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

検定の検出力の計算

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

書式:

pairwise.wilcox.test(x,g,p.adjust.method=p.adjust.methods,...)

引数:

x

応答ベクトル

g

グルーピング用ベクトル,もしくは因子

p.adjust.method p

値を補正する方法

(p.adjust()

を参照

) ... wilcox.test()

に引き渡される追加引き数

返り値: クラス属性

"pairwise.htest"

を持つオブジェクト 関連:

wilcox.test()

p.adjust()

# NY市の大気観測値データairquality使用.月の組合せ毎にwilcox.test()を適用し多重比較補正

> Month <- factor(Month, labels = month.abb[5:9]) # 5,6,7,8,9月名を因子に変換

> pairwise.wilcox.test(Ozone, Month)

$method

[1] "Wilcoxon rank sum test"

$data.name

[1] "Ozone and Month"

# 多重比較補正されたp値.(May,Jul)間で0.0003以下なので0.05%有意

$p.value

May Jun Jul Aug

Jun 0.5775049432 NA NA NA

Jul 0.0002996390 0.08481748 NA NA

Aug 0.0010872705 0.12953880 1.000000000 NA Sep 0.4743723336 1.00000000 0.005954083 0.02273569

$p.adjust.method # Holm法で補正(既定)

[1] "holm"

attr(,"class") [1] "pairwise.htest"

Warning messages: # データにタイがあるので警告がでる(省略)

# Bonferroni法で多重比較.再び0.05%有意という結果

> pairwise.wilcox.test(Ozone, Month, p.adj = "bonf")

$method

[1] "Wilcoxon rank sum test"

$data.name

[1] "Ozone and Month"

$p.value

May Jun Jul Aug

Jun 1.0000000000 NA NA NA

Jul 0.0002996390 0.1413625 NA NA

Aug 0.0012080783 0.2590776 1.000000000 NA Sep 1.0000000000 1.0000000 0.007442604 0.03247955

$p.adjust.method [1] "bonferroni"

attr(,"class") [1] "pairwise.htest"

Warning messages: # データにタイがあるので警告がでる(省略)

> detach()

するパラメータ値

)

がどの程度離れていれば十分な検出力が得られるかが問題になる.ま た,検出力は一般にデータ数とともに大きくなるので,指定した検出力を得るのに必要な データ数の見積りも問題になる.

3.4.1 一元配置分散分析検定の検出力計算 power.anova.test()

power.anova.test()

は一元配置分散分析検定の検出力

(

パワー

)

を計算する.または 目的の検出力を得ることができるパラメータ値を計算する.

書式:

power.anova.test(groups = NULL, n = NULL, between.var = NULL, within.var = NULL, sig.level = 0.05, power = NULL)

引数:

groups

グループ数

n (

グループ毎の

)

観測値数

between.var

グループ間分散

within.var

グループ内分散

sig.level

信頼係数

(

タイプ

I

エラー確率

)

power

検定の検出力

(1

からタイプ

II

エラー確率を引いたもの

)

返り値: クラス属性

"power.htest"

を持つオブジェクトで,

method

note

成分 が加えられた,与えられた引き数

(

計算されたものを含む

)

を成分に持つリスト

パラメータ

groups, n, between.var, power, within.var

そして

sig.level

の内丁 度一つが値

NULL

と指定される必要があり,そのパラメータは他のパラメータから計算さ

れる.

sig.level

NULL

でない既定値を持っており,これを計算したければ明示的に

NULL

と指定する必要があることを注意しよう.

注意:未知パラメータを得るために検出力方程式を解くために

uniroot()

が使われ,し たがって,特に不正な引き数が与えられたとき根をくくり出せないという,エラーを得る かも知れない.

関連:

anova(), lm(), uniroot()

> power.anova.test(groups=4, n=5, between.var=1, within.var=3) Balanced one-way analysis of variance power calculation

groups = 4 # グループ数

n = 5 # 指定されたグループ毎の標本数

between.var = 1 # 指定された級間分散値

within.var = 3 # 指定された級内分散値

sig.level = 0.05 # 指定された有意水準

power = 0.3535594 # 対応する検出力

NOTE: n is number in each group

# 一元配置分散分析検定で指定検出力を得るのに必要な標本数

> power.anova.test(groups=4, between.var=1, within.var=3, power=.80)

Balanced one-way analysis of variance power calculation groups = 4

n = 11.92613 # 必要とされるグループ毎の標本数

between.var = 1

within.var = 3 sig.level = 0.05

power = 0.8 # 指定検出力

NOTE: n is number in each group

> groupmeans <- c(120, 130, 140, 150)

> power.anova.test(groups = length(groupmeans), # 群平均に付いて予め知っている時 between.var=var(groupmeans),

within.var=500, power=.90)

Balanced one-way analysis of variance power calculation groups = 4

n = 15.18834 # 指定されたグループ毎の標本数

between.var = 166.6667 within.var = 500

sig.level = 0.05

power = 0.9 # 指定検出力

NOTE: n is number in each group

3.4.2 比率の検定に対する検出力 power.prop.test()

power.prop.test()

は比率の検定に対する検出力を計算する.または目標の検出力を

得るために必要なパラメータを計算する.

書式:

power.prop.test(n=NULL, p1=NULL, p2=NULL, sig.level=0.05,

power=NULL, alternative=c("two.sided","one.sided"), strict=FALSE)

引数:

n (

グループ毎の

)

観測値数

p1

一つのグループの確率

p2

もう一つのグループの確率

sig.level

信頼係数

(

タイプ

I

エラー確率

)

power

検定の検出力

(1

からタイプ

II

エラー確率を引いたもの

) alternative

片側・両側検定

strict

両側検定の際,厳密な解釈を行う

返り値: クラス属性

"power.htest"

を持つオブジェクトで,

method

note

成分 が加えられた,与えられた引き数

(

計算されたものを含む

)

を成分に持つリスト

パラメータ

n, p1, p2, power

そして

sig.level

の内丁度一つが値

NULL

と指定される 必要があり,そのパラメータは他のパラメータから計算される.

sig.level

NULL

で ない既定値を持っており,これを計算したければ明示的に

NULL

と指定する必要があるこ とを注意しよう.もし

strict=TRUE

ならば,両側検定の場合,検出力は真の効果の反対 方向への棄却確率を含む.これがないと真の差が

0

ならば検出力は信頼係数の半分にな るであろう.

注意:未知パラメータを得るために検出力方程式を解くために

uniroot()

が使われる.

したがって,特に不正な引き数が与えられたとき,根をくくり出せないというエラーを得 るかも知れない.もしどちらかが計算されると

p1 < p2

となるが,両方が指定されると

必ずしもこうならない.

関連:

prop.test(), uniroot()

# n=50,p1=.50,p2=.75,sig.level=0.05なら検出力は0.74

> power.prop.test(n=50, p1=.50, p2=.75)

Two-sample comparison of proportions power calculation n = 50

p1 = 0.5 p2 = 0.75

sig.level = 0.05 # 指定有意水準

power = 0.7401659 # 計算された検出力

alternative = two.sided # 両側対立仮説

NOTE: n is number in *each* group

# p1=0.5,p2=.75,sig.level=0.05の時,power=0.9であるためにはn=77が必要

> power.prop.test(p1=.50, p2=.75, power=.90)

Two-sample comparison of proportions power calculation

n = 76.70693 # 計算された必要観測値数

p1 = 0.5 p2 = 0.75 sig.level = 0.05 power = 0.9 alternative = two.sided NOTE: n is number in *each* group

# n=50,p1=0.5,sig.level=0.05の時,power=0.9であるためにはp2=0.80が必要

> power.prop.test(n=50, p1=.5, power=.90)

Two-sample comparison of proportions power calculation n = 50

p1 = 0.5

p2 = 0.8026141 # 計算されたp2

sig.level = 0.05 power = 0.9 alternative = two.sided NOTE: n is number in *each* group

3.4.3 t 検定の検出力の計算 power.t.test()

power.t.test()

は一・二標本の

t

検定を行う.または,目標の検出力を得るために必

要なパラメータの決定を行う.

書式:

power.t.test(n=NULL, delta=NULL, sd=1, sig.level=0.05, power=NULL, type=c("two.sample", "one.sample", "paired"),

alternative=c("two.sided", "one.sided"), strict=FALSE)

引数:

n (

グループ毎の

)

観測値数

delta

平均の真の差

sd

標準偏差

sig.level

信頼係数

(

タイプ

I

エラー確率

)

power

検定の検出力

(1

からタイプ

II

エラー確率を引いたもの

) type t

検定のタイプ

alternative

片側・両側検定

strict

両側検定の際,厳密な解釈を行う

返り値: クラス

"power.htest"

のオブジェクトで,

method

note

成分が加えら れた,与えられた引き数

(

計算されたものを含む

)

を成分に持つリスト

パラメータ

n, delta, power, sd

そして

sig.level

の内丁度一つが値

NULL

と指定さ れる必要があり,そのパラメータは他のパラメータから計算される.最後の二つは

NULL

でない既定値を持っており,これらを計算したければ明示的に

NULL

と指定する必要があ ることを注意しよう.もし

strict=TRUE

ならば,両側検定の場合,検出力は真の効果の 反対方向への棄却確率を含む.これがないと真の差が

0

ならば検出力は信頼係数の半分 になるであろう.

注意:未知パラメータを得るために検出力方程式を解くために

uniroot()

が使われ,し たがって,特に不正な引き数が与えられたとき根をくくり出せないという,エラーを得る かも知れない.

関連:

t.test(), uniroot()

> power.t.test(n=20, delta=1) # 観測値数20の時の検出力

Two-sample t test power calculation # 二標本t検定

n = 20 # 二標本のそれぞれのデータ数

delta = 1 # 真の平均差

sd = 1 # 二標本の標準偏差

sig.level = 0.05 # 第一種の誤り確率

power = 0.8689528 # 計算された検出力

alternative = two.sided # 両側対立仮説

NOTE: n is number in *each* group

> power.t.test(power=.90, delta=1) # 検出力0.90を得るために必要な観測値数 Two-sample t test power calculation # 二標本t検定

n = 22.02110 # 必要な両群の観測値数

delta = 1 sd = 1 sig.level = 0.05

power = 0.9 alternative = two.sided NOTE: n is number in *each* group

> power.t.test(power=.90, delta=1, alt="one.sided")

Two-sample t test power calculation # 二標本t検定

n = 17.84713 # 必要な両群の観測値数

delta = 1 sd = 1 sig.level = 0.05

power = 0.9

alternative = one.sided # 片側対立仮説を指定

NOTE: n is number in *each* group

> power.t.test(n=50, delta=1, sd=1, sig.level=0.05, power=NULL, type="one.sample", alternative="one.sided") One-sample t test power calculation # 一標本t検定

n = 50 delta = 1

sd = 1 sig.level = 0.05

power = 1 # そのときの検出力

alternative = one.sided # 片側対立仮説を指定

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