หน้านี้อุทิศให้กับการคำนวณจำนวนผู้ป่วยที่จำเป็นสำหรับการศึกษาหลายครั้งเช่นการทดลองทางคลินิกแบบสุ่ม (RCT) สำหรับการอนุมานเชิงสาเหตุหรือกลุ่มสำหรับการสร้างหรือตรวจสอบความถูกต้องของเครื่องมือทำนาย เสนอรหัส R เราสามารถคลิกที่นี่เพื่อเข้าถึงเครื่องคิดเลขที่ใช้งานง่ายที่เกี่ยวข้อง การแจ้งเตือนบางอย่าง:
Superiority RCT: ใช้เพื่อแสดงให้เห็นว่าการรักษาด้วยการทดลองนั้นมีประสิทธิภาพมากกว่าการรักษามาตรฐาน
RCT ที่ไม่ด้อยกว่า: ใช้เพื่อแสดงให้เห็นว่าการรักษาด้วยการทดลองนั้นมีประสิทธิภาพเท่ากับการรักษามาตรฐาน
ลำดับ RCT: การวิเคราะห์ระดับกลางสำหรับการหยุดการศึกษาก่อน
พิจารณา RCT ต่อไปนี้ที่มีสองกลุ่มขนานที่มีอัตราส่วนการสุ่ม 1: 1 ค่าเฉลี่ยที่คาดหวังคือ 66 หน่วยในผู้ป่วยในแขนทดลองเทียบกับ 72 หน่วยในแขนควบคุม เพื่อแสดงให้เห็นถึงความแตกต่างของ 6 หน่วยโดยมีค่าเบี่ยงเบนมาตรฐาน 23, อัตราความผิดพลาดประเภทสองสองด้าน 5% และกำลัง 80%, ขนาดตัวอย่างต่ำสุดต่อแขนเท่ากับ 231 (เช่นผู้ป่วยทั้งหมด 462 คน)
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] 6พารามิเตอร์อินพุต:
พิจารณา RCT ต่อไปนี้ที่มีกลุ่มขนานสองกลุ่มที่มีอัตราส่วนการสุ่ม 1: 1 และการวิเคราะห์ระดับกลางที่วางแผนไว้ 2 ครั้งเพื่อประสิทธิภาพโดยใช้วิธี O'Brien-Fleming สำหรับการพิจารณาอัตราเงินเฟ้อของอัตราความผิดพลาด Type I) ค่าเฉลี่ยที่คาดหวังคือ 66 หน่วยในผู้ป่วยในแขนทดลองเทียบกับ 72 หน่วยในแขนควบคุม เพื่อแสดงให้เห็นถึงความแตกต่างของ 6 หน่วยโดยมีค่าเบี่ยงเบนมาตรฐาน 23, อัตราความผิดพลาดประเภทสองสองด้าน 5% และกำลัง 80% การวิเคราะห์ขั้นสุดท้ายควรดำเนินการกับผู้ป่วย 472 ราย (236 ผู้ป่วยต่อกลุ่ม) การวิเคราะห์ระดับกลางครั้งแรกและครั้งที่สองจะดำเนินการกับผู้ป่วย 158 และ 316 คนตามลำดับเช่น 33% และ 66% ของจำนวนสูงสุดของผู้ป่วยที่รวมอยู่หากไม่มีการตัดสินใจหยุดการศึกษา
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 พารามิเตอร์อินพุต:
พิจารณา RCT ต่อไปนี้ที่มีสองกลุ่มขนานที่มีอัตราส่วนการสุ่ม 1: 1 ค่าเฉลี่ยที่คาดหวังคือ 66 หน่วยในผู้ป่วยในแขนควบคุมและไม่มีความแตกต่างเมื่อเทียบกับแขนทดลอง สมมติว่าอัตรากำไรขั้นต้นที่ไม่ด้อยกว่า 7 คะแนนค่าเบี่ยงเบนมาตรฐาน 23 ขนาดตัวอย่างต่ำสุดต่อแขนเท่ากับ 134 (เช่นผู้ป่วยทั้งหมด 268 คน) เพื่อให้ได้อัตราความผิดพลาดประเภท I ข้างเดียว 5% และกำลัง 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.8พารามิเตอร์อินพุต:
พิจารณา RCT ต่อไปนี้ที่มีสองกลุ่มขนานที่มีอัตราส่วนการสุ่ม 1: 1 สัดส่วนที่คาดหวังของเหตุการณ์คือ 35% ในแขนทดลองเมื่อเทียบกับ 28% ในแขนควบคุม เพื่อแสดงให้เห็นถึงความแตกต่างเช่น 7%โดยมีอัตราความผิดพลาดประเภทสองสองด้านที่ 5%และกำลัง 80%ขนาดตัวอย่างต่ำสุดต่อแขนเท่ากับ 691 (เช่นผู้ป่วยทั้งหมด 1382 คน)
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.384615พารามิเตอร์อินพุต:
พิจารณา RCT ต่อไปนี้ที่มีกลุ่มคู่ขนานสองกลุ่มที่มีอัตราส่วนการสุ่ม 1: 1 และการวิเคราะห์ระดับกลางที่วางแผนไว้ 2 ครั้งเพื่อประสิทธิภาพโดยใช้วิธี O'Brien-Fleming สำหรับการพิจารณาอัตราเงินเฟ้อของอัตราความผิดพลาด Type I สัดส่วนที่คาดหวังของเหตุการณ์คือ 11% ในผู้ป่วยในแขนทดลองเทียบกับ 15% หน่วยในแขนควบคุม เพื่อแสดงให้เห็นถึงความแตกต่างดังกล่าว 4%โดยมีอัตราความผิดพลาดประเภทสองสองด้าน 5%และกำลัง 80%การวิเคราะห์ขั้นสุดท้ายควรดำเนินการกับผู้ป่วย 2,256 คน (1,128 ผู้ป่วยต่อกลุ่ม) การวิเคราะห์ระดับกลางครั้งแรกและครั้งที่สองจะดำเนินการกับผู้ป่วย 752 และ 1,504 คนตามลำดับเช่น 33% และ 66% ของจำนวนผู้ป่วยรวมสูงสุดหากไม่มีการตัดสินใจหยุดการศึกษา
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 พารามิเตอร์อินพุต:
พิจารณา RCT ต่อไปนี้ที่มีสองกลุ่มขนานที่มีอัตราส่วนการสุ่ม 1: 1 เปอร์เซ็นต์ที่คาดหวังของเหตุการณ์คือ 35% ในผู้ป่วยในแขนควบคุมและไม่แตกต่างกันเมื่อเทียบกับแขนทดลอง สมมติว่าอัตรากำไรขั้นต้นที่ไม่ด้อยกว่า 5%ขนาดตัวอย่างขั้นต่ำต่อแขนเท่ากับ 1,126 (เช่นผู้ป่วยทั้งหมด 2,252 คน) เพื่อให้ได้อัตราความผิดพลาดประเภท I ข้างเดียว 5%และกำลัง 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.8พารามิเตอร์:
สำหรับการพัฒนาโมเดล/alghorithm โดยใช้ตัวทำนาย 34 ตัวในฐานะผู้สมัครที่มี R2 ที่คาดหวังอย่างน้อย 0.25 และการหดตัวที่คาดหวัง 0.9 (สมการที่ 11 ใน Riley et al. สถิติด้านการแพทย์ 2019; 38: 1276–1296) ขนาดตัวอย่างน้อยที่สุดคือ 1045
34 / (( 0.9 - 1 ) * log( 1 - 0.25 / 0.9 ))
# > [1] 1044.796พิจารณา O/E อัตราส่วนระหว่างจำนวนเหตุการณ์ที่สังเกตได้เมื่อเทียบกับเหตุการณ์ที่คาดหวัง เพื่อให้ได้ความแม่นยำที่กำหนดเป็นความยาวของช่วงความเชื่อมั่น (1-α)% ของอัตราส่วนนี้เท่ากับ 0.2 หากสัดส่วนที่คาดหวังคือ 50% ขนาดตัวอย่างที่ต้องการคือ 386 (Riley et al. ขนาดตัวอย่างต่ำสุดสำหรับการตรวจสอบภายนอกของแบบจำลองการทำนายทางคลินิก
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.4265พารามิเตอร์อินพุต: