MENU

R でダネット検定に必要なサンプル数を計算する方法

ダネット検定のサンプルサイズ計算を R で行う方法

>>もう統計で悩むのは終わりにしませんか? 

↑期間・数量限定で無料プレゼント中!

目次

ダネット検定サンプルサイズ計算スクリプトの前提

ダネット検定とは、コントロール群、統制群、非処理群などと呼ばれる比較対照グループと、複数用量の治療群、処理群を比較する検定である。

サンプルサイズ計算のスクリプト作成にあたっては、Liu W. 1997の論文を参照した。

論文のTableの一部をtextデータにして使用している。

dat.tab <- read.table("table-for-dunnett-test-sample-size.txt")

ダウンロードはこちらから → table-for-dunnett-test-sample-size.txt

ダウンロードしたのちWorking directory(Windowsであればドキュメントフォルダ)に保存して、上記スクリプトを実行する。

ダネット検定のサンプルサイズ計算スクリプト

ダネット検定のサンプルサイズ計算スクリプトは以下の通り。

sample.size.dunnett <-
function(
nu=40,sig.level=c(.1,.05,.01),power=c(.75,.80,.85,.90,.95),
treat=c(2:10),Delta,sd=1
)
{
dat.tab.abs <- subset(dat.tab, alpha==sig.level & Power==power & k==treat)
n <- (dat.tab.abs$sqrt.n.delta/Delta*sd)^2
n0 <- sqrt(treat)*n
NOTE <- "n is each number in *treatment* groups"
METHOD <- "Sample size determination for Dunnett test"
structure(
list("n0 (control)" = n0, "n (treatment)" = n,
"Treatment groups" = treat,
"Diff. to be rejected" = Delta,
SD = sd,
sig.level = sig.level,
power = power, alternative = "two.sided", note = NOTE,
method = METHOD),
class = "power.htest")
}

ただし、このスクリプトには制限がある。

  • 有意水準が10%、5%、1%の三種類しか選べない。
  • 検出力が75%、80%、85%、90%、95%の五種類しか選べない。
  • 治療群は2から最大10までしか選べない。

>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

ダネット検定のサンプルサイズ計算の例

大きな差を検出する条件だと…

有意水準5%、検出力80%、治療群が三群、標準偏差SD=1に対して、差Delta=0.9を棄却するためのサンプルサイズ計算をすると、対照が53例、治療群は各群31例必要と計算される。

標準偏差SD=1に対して、差Deltaをどう考えるかは、下記を参照。

> sample.size.dunnett(sig.level=.05,power=.8,treat=3,Delta=0.9)
Sample size determination for Dunnett test
n0 (control) = 52.7338
n (treatment) = 30.44587
Treatment groups = 3
Diff. to be rejected = 0.9
SD = 1
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is each number in *treatment* groups

Effect sizeが半分くらいになると…

棄却すべき差が約半分の0.5になると、必要なサンプルサイズは増加して、対照群が171例、治療群は各群99例必要になる。

> sample.size.dunnett(sig.level=.05,power=.8,treat=3,Delta=0.5)
Sample size determination for Dunnett test
n0 (control) = 170.8575
n (treatment) = 98.64462
Treatment groups = 3
Diff. to be rejected = 0.5
SD = 1
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is each number in *treatment* groups

Effect sizeが相対的に大きいと…

動物実験などピュアな実験系であると、ばらつきが小さく、相対的に効果量(Effect size)が大きくなる。

そういう場合はどうか。

棄却すべき差が標準偏差SD=1に対して、Delta=2だった場合、必要となるサンプルサイズは、対照群が11例、治療群は各群7例となる。

実際の実験室での状況ではこのくらいではないだろうか?

> sample.size.dunnett(sig.level=.05,power=.8,treat=3,Delta=2)
Sample size determination for Dunnett test
n0 (control) = 10.67859
n (treatment) = 6.165289
Treatment groups = 3
Diff. to be rejected = 2
SD = 1
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is each number in *treatment* groups

治療群の数が減ると…

標準化された差が2のままで、治療群が二群のデザインになると、必要となるサンプルサイズはさらに小さくなり、対照群が8例、治療群が各群6例で済むようになる。

> sample.size.dunnett(sig.level=.05,power=.8,treat=2,Delta=2)
Sample size determination for Dunnett test
n0 (control) = 7.836604
n (treatment) = 5.541316
Treatment groups = 2
Diff. to be rejected = 2
SD = 1
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is each number in *treatment* groups

ダネット検定のサンプルサイズ計算をエクセルで

エクセルファイルでダネット検定のサンプルサイズ計算ができるようにした。

数値表込み。

よかったらどうぞ。

ダネット検定 サンプルサイズ計算【エクセルでサンプルサイズ】 | TKER SHOP

エクセルファイルの使い方を解説した動画。

こちらもよければどうぞ。

ダネット検定のサンプルサイズ計算を R のパッケージで計算する方法

DunnettTestsパッケージのnvDT()関数で計算可能だ。

ただしこの関数は上記と違って片側検定なので承知おきを。

一度だけインストール。

install.packages("DunnettTests")

呼び出してから利用する。

library(DunnettTests)
  • ratioは、治療群とコントロール群の比。
  • powerは検出力。
  • rは少なくともいくつの群間で有意になってほしいか。
  • kは治療群の数。
  • muは治療群の平均値。
  • mu0はコントロール群の平均値。
  • contrastはmeansにすると平均値の比較。propsとすると割合の比較。
  • sigmaは標準偏差。propsのときは指定しない。
  • distはt分布(tdist)か標準正規分布(zdist)か指定。nが小さいと予想される場合はtdistがよい。
  • testcallはStep-up(SU)とStep-down(SD)が指定できる。
    Step-upはHochbergの方法、Step-downはHolmの方法と思えばいい。

Hochbergの方法、Holmの方法は下記を参照。

大きな差を検出する条件再計算

Effect sizeが0.9と、大きな差の場合は、上記の方法では、両側検定でコントロール群が53例、治療群が各群31例必要と計算された。

こちらの nvDT() による片側検定のためのサンプルサイズ計算では、コントロール群が32例、治療群は各18例と計算された。

> nvDT(ratio=1/sqrt(3), power=0.8, r=3, k=3, mu=0.9, mu0=0, contrast="means", sigma=1, dist="zdist", testcall="SU")
$`least sample size required in each treatment groups`
[1] 18
$`least sample size required in the control group`
[1] 32

Effect sizeが約半分のとき再計算

Effect sizeが約半分の0.5の時は、先ほどはコントロール群が171例、治療群は各群99例必要と計算された。

こちらの場合は、コントロール群が101例、治療群は各58例必要と計算された。

> nvDT(ratio=1/sqrt(3), power=0.8, r=3, k=3, mu=0.5, mu0=0, contrast="means", sigma=1, dist="zdist", testcall="SU")
$`least sample size required in each treatment groups`
[1] 58
$`least sample size required in the control group`
[1] 101

Effect sizeが相対的に大きいとき再計算

Effect sizeが相対的に大きく、2であった場合、コントロール群が11例、治療群は各7例必要であったところが、nvDT()の方法であると、コントロール群が7例、治療群は各4例必要と計算された。

> nvDT(ratio=1/sqrt(3), power=0.8, r=3, k=3, mu=2, mu0=0, contrast="means", sigma=1, dist="zdist", testcall="SU")
$`least sample size required in each treatment groups`
[1] 4
$`least sample size required in the control group`
[1] 7

治療群が減ったとき再計算

治療群が三群から二群に減ると、必要数も減る。

上記の方法では、コントロール群が8例、治療群が各6例必要であった。

こちらの方法では、コントロール群が6例、治療群は各4例必要と計算された。

> nvDT(ratio=1/sqrt(2), power=0.8, r=2, k=2, mu=2, mu0=0, contrast="means", sigma=1, dist="zdist", testcall="SU")
$`least sample size required in each treatment groups`
[1] 4
$`least sample size required in the control group`
[1] 6

まとめ

ダネット検定を行う試験デザインのサンプルサイズ計算スクリプトを示した。

ただし、Liu W 1997論文に掲載されている表の一部を使っているので、すべての条件を網羅しておらず限界がある。

DunnettTestsパッケージのnvDT()関数も利用できる。

ただし、片側検定なのでその点注意。

参考文献

Liu W.
On sample size determination of Dunnett’s procedure
for comparing several treatments with a control.

永田 靖 ダネットの方法におけるサンプルサイズの決め方について 医薬安全性研究会 会報 2005;50(May):51-59.

Package ‘DunnettTests’

A Step-Up Multiple Test Procedure

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメントする

目次