書式:
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 # 片側対立仮説を指定