Halaman ini dikhususkan untuk perhitungan jumlah pasien yang diperlukan untuk beberapa studi seperti uji klinis acak (RCT) untuk inferensi kausal atau kohort untuk membangun atau memvalidasi alat prediktif. Kode R diusulkan. Kami dapat mengklik di sini untuk mengakses kalkulator yang ramah pengguna terkait. Beberapa pengingat:
Superioritas RCT: Gunakan untuk menunjukkan bahwa pengobatan eksperimental lebih efektif daripada terapi standar.
RCT non-inferioritas: digunakan untuk menunjukkan bahwa pengobatan eksperimental sama efektifnya dengan terapi standar.
RCT berurutan: Analisis menengah untuk menghentikan awal penelitian.
Pertimbangkan RCT berikut dengan dua kelompok paralel dengan rasio pengacakan 1: 1. Rata -rata yang diharapkan adalah 66 unit pada pasien dalam kelompok eksperimental versus 72 unit di kelompok kontrol. Untuk menunjukkan perbedaan 6 unit, dengan standar deviasi 23, tingkat kesalahan tipe I dua sisi 5% dan daya 80%, ukuran sampel minimum per lengan sama dengan 231 (yaitu, total 462 pasien).
library( epiR )
epi.sscompc( treat = 66 , control = 72 , sigma = 23 , n = NA , power = 0.8 ,
r = 1 , sided.test = 2 , conf.level = 1 - 0.05 )
# > $n.total
# > [1] 462
# > $n.treat
# > [1] 231
# > $n.control
# > [1] 231
# > $power
# > [1] 0.8
# > $delta
# > [1] 6Parameter input:
Pertimbangkan RCT berikut dengan dua kelompok paralel dengan rasio pengacakan 1: 1 dan 2 analisis perantara yang direncanakan untuk kemanjuran dengan menggunakan metode O'Brien-Fleming untuk mempertimbangkan inflasi tingkat kesalahan tipe I). Rata -rata yang diharapkan adalah 66 unit pada pasien dalam kelompok eksperimental versus 72 unit di kelompok kontrol. Untuk menunjukkan perbedaan 6 unit, dengan standar deviasi 23, tingkat kesalahan tipe I dua sisi 5% dan kekuatan 80%, analisis akhir harus dilakukan pada 472 pasien (236 pasien per kelompok). Analisis menengah pertama dan kedua akan dilakukan pada 158 dan 316 pasien, IE 33% dan 66% dari jumlah maksimum pasien yang dimasukkan jika mereka tidak memiliki keputusan untuk menghentikan penelitian.
library( " rpact " )
design <- getDesignGroupSequential(
typeOfDesign = " OF " , informationRates = c( 1 / 3 , 2 / 3 , 1 ),
alpha = 0.05 , beta = 1 - 0.8 , sided = 2 )
designPlan <- getSampleSizeMeans( design , alternative = 6 , stDev = 23 ,
allocationRatioPlanned = 1 )
summary( designPlan )
# > Stage 1 2 3
# > Planned information rate 33.3% 66.7% 100%
# > Cumulative alpha spent 0.0005 0.0143 0.0500
# > Stage levels (two-sided) 0.0005 0.0141 0.0451
# > Efficacy boundary (z-value scale) 3.471 2.454 2.004
# > Lower efficacy boundary (t) -13.012 -6.405 -4.258
# > Upper efficacy boundary (t) 13.012 6.405 4.258
# > Cumulative power 0.0329 0.4424 0.8000
# > Number of subjects 157.1 314.2 471.3
# > Expected number of subjects under H1 396.7
# > Exit probability for efficacy (under H0) 0.0005 0.0138
# > Exit probability for efficacy (under H1) 0.0329 0.4095 Parameter input:
Pertimbangkan RCT berikut dengan dua kelompok paralel dengan rasio pengacakan 1: 1. Rata -rata yang diharapkan adalah 66 unit pada pasien di kelompok kontrol dan tidak ada perbedaan dibandingkan dengan kelompok eksperimental. Dengan asumsi margin non-inferioritas absolut dari 7 poin, standar deviasi 23, ukuran sampel minimum per lengan sama dengan 134 (yaitu, total 268 pasien) untuk mencapai tingkat kesalahan tipe I 5% satu sisi dan kekuatan 80%
library( epiR )
epi.ssninfc( treat = 66 , control = 66 , sd = 23 , delta = 7 ,
power = 0.8 , alpha = 0.05 , r = 1 , n = NA )
# > $n.total
# > [1] 268
# > $n.treat
# > [1] 134
# > $n.control
# > [1] 134
# > $delta
# > [1] 7
# > $power
# > [1] 0.8Parameter input:
Pertimbangkan RCT berikut dengan dua kelompok paralel dengan rasio pengacakan 1: 1. Proporsi kejadian yang diharapkan adalah 35% pada kelompok eksperimental dibandingkan dengan 28% pada kelompok kontrol. Untuk menunjukkan perbedaan 7%, dengan tingkat kesalahan tipe I dua sisi 5%dan daya 80%, ukuran sampel minimum per lengan sama dengan 691 (yaitu, total 1.382 pasien).
library( epiR )
epi.sscohortc( irexp1 = 0.35 , irexp0 = 0.28 , power = 0.80 , r = 1 ,
sided.test = 2 , conf.level = 1 - 0.05 )
# > $n.total
# > [1] 1382
# > $n.exp1
# > [1] 691
# > $n.exp0
# > [1] 691
# > $power
# > [1] 0.8
# > $irr
# > [1] 1.25
# > $or
# > [1] 1.384615Parameter input:
Pertimbangkan RCT berikut dengan dua kelompok paralel dengan rasio pengacakan 1: 1 dan 2 analisis perantara yang direncanakan untuk kemanjuran dengan menggunakan metode O'Brien-Fleming untuk mempertimbangkan inflasi tingkat kesalahan Tipe I. Proporsi peristiwa yang diharapkan adalah 11% pada pasien dalam kelompok eksperimental versus 15% unit di kelompok kontrol. Untuk menunjukkan perbedaan 4%, dengan tingkat kesalahan tipe I dua sisi dan daya 80%, analisis akhir harus dilakukan pada 2.256 pasien (1.128 pasien per kelompok). Analisis menengah pertama dan kedua akan dilakukan pada 752 dan 1.504 pasien, IE 33% dan 66% dari jumlah maksimum pasien yang dimasukkan jika mereka tidak memiliki keputusan untuk menghentikan penelitian.
library( " rpact " )
design <- getDesignGroupSequential( typeOfDesign = " OF " ,
informationRates = c( 1 / 3 , 2 / 3 , 1 ), alpha = 0.05 ,
beta = 1 - 0.8 , sided = 2 )
designPlan <- getSampleSizeRates( design , pi1 = 0.11 , pi2 = 0.15 ,
allocationRatioPlanned = 1 )
summary( designPlan )
# > Stage 1 2 3
# > Planned information rate 33.3% 66.7% 100%
# > Cumulative alpha spent 0.0005 0.0143 0.0500
# > Stage levels (two-sided) 0.0005 0.0141 0.0451
# > Efficacy boundary (z-value scale) 3.471 2.454 2.004
# > Lower efficacy boundary (t) -0.079 -0.042 -0.029
# > Upper efficacy boundary (t) 0.101 0.048 0.031
# > Cumulative power 0.0329 0.4424 0.8000
# > Number of subjects 751.8 1503.7 2255.5
# > Expected number of subjects under H1 1898.1
# > Exit probability for efficacy (under H0) 0.0005 0.0138
# > Exit probability for efficacy (under H1) 0.0329 0.4095 Parameter input:
Pertimbangkan RCT berikut dengan dua kelompok paralel dengan rasio pengacakan 1: 1. Persentase kejadian yang diharapkan adalah 35% pada pasien di kelompok kontrol dan tidak ada perbedaan dibandingkan dengan kelompok eksperimental. Dengan asumsi margin non-inferioritas absolut sebesar 5%, ukuran sampel minimum per lengan sama dengan 1.126 (yaitu, total 2.252 pasien) untuk mencapai tingkat kesalahan tipe I satu sisi 5%dan daya 80%.
epi.ssninfb( treat = 0.35 , control = 0.35 , delta = 0.05 ,
n = NA , r = 1 , power = 0.8 , alpha = 0.05 )
# > $n.total
# > [1] 2252
# > $n.treat
# > [1] 1126
# > $n.control
# > [1] 1126
# > $delta
# > [1] 0.05
# > $power
# > [1] 0.8Parameter:
Untuk mengembangkan model/alghorithma berdasarkan 34 prediktor sebagai kandidat dengan R2 yang diharapkan setidaknya 0,25 dan penyusutan yang diharapkan 0,9 (Persamaan 11 dalam Riley et al. Statistik dalam kedokteran. 2019; 38: 1276-1296), ukuran sampel minimal adalah 1045.
34 / (( 0.9 - 1 ) * log( 1 - 0.25 / 0.9 ))
# > [1] 1044.796Pertimbangkan O/E rasio antara jumlah peristiwa yang diamati versus yang diharapkan. Untuk mencapai presisi yang didefinisikan sebagai panjang interval kepercayaan (1-α)% dari rasio ini sama dengan 0,2, jika proporsi yang diharapkan adalah 50%, ukuran sampel yang diperlukan adalah 386 (Riley et al. Ukuran sampel minimum untuk validasi eksternal dari model prediksi klinis dengan hasil biner.
se <- function ( width , alpha ) # The standard error associated with the 1-alpha confidence interval
{
fun <- function ( x ) { exp( qnorm( 1 - alpha / 2 , mean = 0 , sd = 1 ) * x ) - exp( - 1 * qnorm( 1 - alpha / 2 , mean = 0 , sd = 1 ) * x ) - width }
return (uniroot( fun , lower = 0.001 , upper = 100 ) $ root )
}
size.calib <- function ( p , width , alpha ) # the minimum sample size to achieve this precision
{
( 1 - p ) / (( p * se( width = width , alpha = alpha ) ** 2 ))
}
size.calib( p = 0.5 , width = 0.2 , alpha = 0.05 )
# > [1] 385.4265Parameter input: