不同结局指标样本量计算
一般的研究设计中,临床结局变量可分为连续性或二分类型,不同类型的设计往往对应不同的结局变量。样本量计算方法也有所不同。
二分类结局
二分类结局是指结局为二分类且二者互斥,如实施某种疗法后,患者是否治愈况。服药后病情是否改善。
已知样本含量计算功效
- 给定组1(n=28)某事件发生概率为30%,组2(n=28)某事件发生概率为55%,计算该研究的统计功效。
power.prop.test(n=28,p1=0.3,p2=0.55)
Two-sample comparison of proportions power calculation
n = 28
p1 = 0.3
p2 = 0.55
sig.level = 0.05
power = 0.4720963
alternative = two.sided
NOTE: n is number in *each* group
- 结果解释:power = 0.4720963,在每组样本n=28,组1发生某事件发生概率为0.3,组2某事件发生概率为0.55的情况下,该试验设计的统计功效为0.48。
已知统计功效计算样本量
- 给定组1某事件发生概率为30%,组2某事件发生概率为55%,计算要求统计功效达到80%所需样本量。
power.prop.test(power=0.8,p1=0.3,p2=0.55)
Two-sample comparison of proportions power calculation
n = 60.18568
p1 = 0.3
p2 = 0.55
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number in *each* group
- 结果解释:给定组1某事件发生概率为30%,组2某事件发生概率为55%,统计功效达到80%每组所需样本量为61。
连续型变量
连续型变量指能取到范围内任意值的变量,如BMI值,身高,体重,血压,血糖等,可见绝大部分的生化指标,测量数据都属于连续型变量。
已知样本含量计算功效
- 给定组1(n=28),组2(n=28),二者结局指标之间均值差值为0.5,离散程度sd为0.28,计算该研究统计功效。
power.t.test(n=28,delta=0.5,sd=0.28,type="two.sample")
Two-sample t test power calculation
n = 28
delta = 0.5
sd = 0.28
sig.level = 0.05
power = 0.9999979
alternative = two.sided
NOTE: n is number in *each* group
- 能发现两组间均值存在差异性的功效power = 0.9999979
已知统计功效计算样本量
- 给定组1,组2结局指标之间均值差值为0.5,离散程度sd为0.28,要使研究统计功效达到80%,需要多大的样本量。
power.t.test(power=0.8,delta=0.5,sd=0.28,type="two.sample")
Two-sample t test power calculation
n = 6.052108
delta = 0.5
sd = 0.28
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number in *each* group
- 结果解释:给定组1,组2结局指标之间均值差值为0.5,离散程度sd为0.28,要使研究统计功效达到80%,需要每组至少7个样本量。
统计功效与样本量间数据可视化
绘制统计功效与样本量的散点图
- 在上述例子中,我们已经知道
power.prop.test
函数和power.t.test
函数能够计算样本量及统计功效,下述函数可绘制在给定两组事件发生概率情况下的统计功效与样本量的散点图。
samplesizes <- seq(from=10,to=200,by=10)
power.samplesizes <- power.prop.test(n=samplesizes,p1=0.3,p2=0.55)$power
plot(samplesizes,
power.samplesizes,
xlim=c(0,200),
xlab="Sample size",
ylab="Expected power",
ylim=c(0,1),
type="b",
col="darkorange",
lwd=5,axes=FALSE)
axis(1,at=c(0,50,100,150,200))
axis(2,at=c(0,0.25,0.5,0.75,1),labels=paste(c(0,25,50,75,100),"%"))
如图所示
组间差异与样本量散点图绘制
通常情况下,研究设计常常要组间均值差异,但是上述方法 power.prop.test
函数和 power.t.test
函数不奏效,因此我们可以使用sapply
函数进行散点图绘制。
differences <- seq(from=0.1,to=2,by=0.1)
samplesize.sd04 <- sapply(differences,
function(d){power.t.test(power=0.9,# 指定功效
delta=d,#赋值difference
sd=0.4,
type="two.sample")$n})
samplesize.sd03 <- sapply(differences,
function(d){power.t.test(power=0.9,
delta=d,
sd=0.3,
type="two.sample")$n})
plot(differences,
samplesize.sd04,
xlim=c(0,2),
xlab="Expected difference between groups",
ylab="Required sample size",
ylim=c(0,350),
type="b",
col="darkblue",
lwd=5,axes=FALSE)
lines(differences, samplesize.sd03,col="turquoise",lwd=5,type="b")
axis(1,at=c(0,0.2,0.5,1,1.5,2))
axis(2,at=c(350,100,50,10,0))
legend(x="topright",lwd=5,bty="n",legend=c("SD=0.4","SD=0.3"),col=c("darkblue","turquoise"))
如图所示