MENU

R で対応のある t 検定に必要なサンプル数を計算する方法

対応のある t 検定は、前後比較をするデザインの時に用いる。

対応のある t 検定のサンプルサイズ、サンプル数はどのくらいであればよいか?

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

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

目次

対応のある t 検定のサンプルサイズ計算に必要な数値

サンプルサイズ計算に必要なのは、

  1. 検出力
  2. 標準化された前後差

の2つだ。

標準化された前後差は、差の標準偏差が必要で、差の標準偏差を表示している先行研究は少ない。

決め打ちで、ある程度決めてしまうしかない。

下記の二群のt検定でも紹介した目安を用いると、中くらいの差を検出するには、標準化された差を0.4から0.5くらいに設定すればよい。

対応のある t 検定のサンプルサイズの目安

計算は以下で確認するとして、目安を以下にまとめた。

効果量とは、ここでは標準化された前後差を指している。

効果量サンプルサイズ
小さな差 0.2199
中くらいな差 0.534
大きな差 0.912

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

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

対応のある t 検定のサンプルサイズ計算を R で行う

Rで計算する場合、power.t.test()を使えばよい。

検出力を80%として、標準化された差を0.5として、サンプルサイズ計算をする。

type=”paired”が対応のある検定であることを指定している。

power.t.test(power=0.8, delta=0.5, type="paired")

結果は、34例必要と計算された。

> power.t.test(power=0.8, delta=0.5, type="paired")
Paired t test power calculation
n = 33.3672
delta = 0.5
sd = 1
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number of *pairs*, sd is std.dev. of *differences* within pairs

大きな差が見込まれるのであれば、delta=0.9を使って計算する。

power.t.test(power=0.8, delta=0.9, type="paired")

結果は、12例で済む。

驚くほど少ない症例で試験ができてしまう。

> power.t.test(power=0.8, delta=0.9, type="paired")
Paired t test power calculation
n = 11.75386
delta = 0.9
sd = 1
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number of *pairs*, sd is std.dev. of *differences* within pairs

希少疾患の試験を計画する場合は、症例数が少なくて済むのは助かる。

画期的な治療法であることが条件だ。

対応のある t 検定のサンプルサイズ計算に power.t.test() を使わない方法

対応のある t 検定のサンプルサイズ計算のために power.t.test() を使わずに、スクリプトを書いてみると以下のようになる。

paired.t.test.samplesize <- function(sig.level=0.05, power=0.8,
delta, sd=1, alternative=c("two.sided","one.sided"))
{
alternative <- match.arg(alternative)
tside <- switch(alternative, one.sided=1, two.sided=2)
Za <- qnorm(sig.level/tside, lower.tail=FALSE)
Zb <- qnorm(power)
n <- 2*((Za+Zb)/(delta/sd*sqrt(2)))^2
NOTE <- "n is number of *pairs*, sd is std.dev. of *differences* within pairs"
METHOD <- "Paired t-test sample size"
structure(list(n=n,delta=delta, sd=sd,
sig.level=sig.level, power=power,
alternative=alternative, note=NOTE, method=METHOD),
class="power.htest")
}

delta=0.5の中程度の差の場合は、32例と計算される。power.t.test()の結果に比べると、2例少ない。

> paired.t.test.samplesize(delta=0.5)
Paired t-test sample size
n = 31.39552
delta = 0.5
sd = 1
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number of *pairs*, sd is std.dev. of *differences* within pairs

delta=0.9の大きな差の場合は、10例必要と計算される。power.t.test()の結果より2例少ない。

> paired.t.test.samplesize(delta=0.9)
Paired t-test sample size
n = 9.689975
delta = 0.9
sd = 1
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number of *pairs*, sd is std.dev. of *differences* within pairs

対応のある t 検定のサンプルサイズ計算をエクセルで行う

上記の方法でサンプルサイズ計算をエクセルのスプレッドシートでできるようにした。

正確な計算より2例程度少なく計算されることは忘れずに。

よければどうぞ。

対応のあるt検定 サンプルサイズ計算【エクセルでサンプルサイズ】 | TKER SHOP

使い方を動画で解説した。

よければどうぞ。

まとめ

対応のある t 検定のサンプルサイズ計算を統計ソフトRでやってみた。

R では、power.t.test() を使えば簡単に計算できる。

R の power.t.test() を使わない方法もスクリプトを書いてみた。

簡易的な方法を使ってエクセルのスプレッドシートでサンプルサイズ計算できるようにした。

参考書籍

医学への統計学 (統計ライブラリー)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

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

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

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

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメント一覧 (2件)

コメントする

目次