見出し画像

RのTrialSizeパッケージに誤りがあるかも知れない件

無事に環境整備を完了し、Rの勉強を始めています。

仕事柄、サンプルサイズ計算の機会が多いので、TrialSizeパッケージを利用できるように関数の利用方法を確認しました。

その中で、誤りがあるかもしれない(私がそう疑った)関数がありましたので、久しぶりにnoteを書きました。

なお、Jupyther notebookをnbviewerで公開しようとして、やり方が分からなくなったので、解決したら公開しようと思います。

TwoSampleProportion.Equivalenceが違う?

この関数は、2群間での割合(例えば、寛解割合など)についての同等性試験を実施するのにどのくらいのサンプルサイズが必要かを返してくれます。

この計算(というかTrialSizeパッケージ全般)は、元本の公式を利用しているようです。(Package'TrialSize'による)

つまり、元本の公式に当てはめれば、TwoSampleProportion.Equivalence関数と同じ計算結果が得られるはずです。

なお、関数の名前が長いので、以後はTSPE関数と略します。

計算条件は次の様にしています。

薬Aと薬Bの治療割合が同等であることを、確かめるための臨床研究を想定します。条件は下記の通りです。

薬Aの治療割合 (p1) = 0.75
薬Bの治療割合 (p2) = 0.80
症例数の比 (κ) = 1 (要は薬Aと薬Bの両群で同じ数)
同等性マージン (m) = 0.20
α = 0.05
β = 0.20

なお、これは、Chow SC, Shao J, Wang H. Sample Size Calculation in Clinical Research(以後、元本)に載っている条件です。

で、早速計算してみました。

まずは、TSPE関数による結果です。

library(TrialSize)
alpha  <- 0.05
beta   <- 0.20
margin <- 0.20
p1     <- 0.75
p2     <- 0.80
delta  <- abs(p1-p2)
k      <- 1
samplesize1 <- TwoSampleProportion.Equivalence(alpha, beta, p1, p2, k, delta, margin)
ceiling(samplesize1)

96

つぎに、公式に代入したやり方です。公式は次のような物です。

画像1

Za     <- 1.64485 # Z_0.05  (alpha = 0.05)
Zb     <- 1.28155 # Z_0.10 (beta/2 = 0.20/2=0.10)
margin <- 0.20
p1     <- 0.75
p2     <- 0.80
delta  <- abs(p1-p2)
samplesize2 <- ((Za+Zb)^2/(margin-delta)^2)*(p1*(1-p1)+p2*(1-p2))
ceiling(samplesize2)

133

計算結果が違います。一方は片群96で、もう一方は片群133という結果は誤差と言うに無理があります。

同じ公式を使っているのに、何故違いが生じたのでしょうか?

この件についてGoogle先生に聞いてみましたが、芳しい答えはありませんでした(私の検索範囲で)。

Z_{β/2}がZ_βとして計算されている?

何でこんなことになっているのか、元本を読んでみました。しかも、初版と2版を!(初版はKindleだけしか持っていないので、ページ数を示す事ができませんので、セクション番号などで示します)。

関連ページで違和感がある箇所があります。

画像2

右側(Section 4.2.4)は計算例として紹介されている式ですが、導出された元々の公式(Section 4.2.3)とは、異なっています。公式ではZ_{β/2}ですが、計算例では代わりにZ_βが使われています。

これは計算例(Section 4.2.4)の式が誤っているようです。2版では修正されていました。第2版p.93では、Z_{β/2}を用いて計算されていました。

画像3

TrialSizeパッケージは、元本の公式ではなく元本初版の計算例の式(何故か誤った式になっていた)を使って計算しているのではないかと思います。

条件を修正して再計算しました。

TSPE関数の引数にβ=0.2の代わりに、β=0.1を指定して試算したら、無事に片群133となりました。

library(TrialSize)
alpha  <- 0.05
beta   <- 0.10
margin <- 0.20
p1     <- 0.75
p2     <- 0.80
delta  <- abs(p1-p2)
k      <- 1
samplesize1 <- TwoSampleProportion.Equivalence(alpha, beta, p1, p2, k, delta, margin)
ceiling(samplesize1)

133

元本2版の当該ページでは片群132となっていますので、誤差範囲内に落ち着いたと思います。多分Z_αやZ_{β/2}の有効桁数違いによる誤差と思います。

もし、TSPE関数でサンプルサイズを計算する機会があれば、βの引数を調整するなどの注意が必要です。

参考文献

(1) Ed Zhang et al. Rackage 'TrialSize'. https://cran.r-project.org/web/packages/TrialSize/TrialSize.pdf (Access January 22, 2020)
(2) Chow SC, Shao J, Wang H. Sample Size Calculation in Clinical Research 1st edition. New York: Marcel Dekker, 2003.
(3) Chow SC, Shao J, Wang H. Sample Size Calculation in Clinical Research 2nd edition. New York: Marcel Dekker, 2008.

利益相反(COI)

金銭・経済的なCOIはありません。ただし、金銭を頂くことを拒否している訳ではありません。何か贈りたい方は是非お願いします(ダイマ)


この記事が気に入ったらサポートをしてみませんか?