R语言样本量计算

一般的研究设计中,临床结局变量可分为连续性或二分类型,不同类型的设计往往对应不同的结局变量。样本量计算方法也有所不同。

二分类结局

二分类结局是指结局为二分类且二者互斥,如实施某种疗法后,患者是否治愈况。服药后病情是否改善。

已知样本含量计算功效

  1. 给定组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
  1. 结果解释:power = 0.4720963,在每组样本n=28,组1发生某事件发生概率为0.3,组2某事件发生概率为0.55的情况下,该试验设计的统计功效为0.48。

已知统计功效计算样本量

  1. 给定组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. 结果解释:给定组1某事件发生概率为30%,组2某事件发生概率为55%,统计功效达到80%每组所需样本量为61。

连续型变量

连续型变量指能取到范围内任意值的变量,如BMI值,身高,体重,血压,血糖等,可见绝大部分的生化指标,测量数据都属于连续型变量。

已知样本含量计算功效

  1. 给定组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

  1. 能发现两组间均值存在差异性的功效power = 0.9999979

已知统计功效计算样本量

  1. 给定组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. 结果解释:给定组1,组2结局指标之间均值差值为0.5,离散程度sd为0.28,要使研究统计功效达到80%,需要每组至少7个样本量。

统计功效与样本量间数据可视化

绘制统计功效与样本量的散点图

  1. 在上述例子中,我们已经知道 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")) 

如图所示

  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
R语言中可以使用pwr包进行样本量计算。pwr包提供了多种方法来计算样本量,包括基于效应大小和基于假设检验的样本量计算方法。 对于基于效应大小的样本量计算,可以使用power.t.test函数。该函数的参数包括power(功效),delta(效应大小),sd(标准差),type(样本类型,如两个独立样本或配对样本),alternative(备择假设类型,如双边或单边)。以下是一个计算两个独立样本均值差异的样本量的示例代码: ```R # 安装和加载pwr包 install.packages("pwr") library(pwr) # 基于效应大小的样本量计算 power.t.test(n = NULL, power = 0.8, delta = 0.5, sd = 1, type = "two.sample", alternative = "two.sided") ``` 对于基于假设检验的样本量计算,可以使用pwr.t.test函数。该函数的参数包括n(样本量),d(效应大小),sig.level(显著性水平),power(功效),type(样本类型,如两个独立样本或配对样本),alternative(备择假设类型,如双边或单边)。以下是一个计算两个独立样本均值差异的样本量的示例代码: ```R # 安装和加载pwr包 install.packages("pwr") library(pwr) # 基于假设检验的样本量计算 pwr.t.test(n = NULL, d = 0.5, sig.level = 0.05, power = 0.8, type = "two.sample", alternative = "two.sided") ``` 以上是R语言计算样本量的基本方法。你可以根据具体的需和假设来调整函数的参数。如果你需要进行其他类型的样本量计算,可以参考pwr包的文档或在线资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值