R语言:样本量估算

临床研究需要多少受试者(样本量)呢?

样本量的确定主要基于功效分析(Power Analysis)。通过控制I类错误(置信水平)和II类错误(功效)来确定的。

基于功效分析来确定样本量,需要提供以下信息:

首先,选择一个显著性水平

    该水平决定了在实际上不存在实际差异的情况下错误地得出存在差异的结论的概率(即I类错误的概率,α)。假设一个药物无效,判断成有效这种情况,我们有多大程度上可以接受?显然,这个接受度是不高的,那具体有多低呢?通常会选择 5% 的显著性水平,以反映对未知参数的 95% 的置信度。

其次,选择一个期望的功效水平

    该水平决定了在期望实现的差异确实存在的情况下正确检测到该差异的概率。假设一个药物有效,判断为有效的这种能力。常见的功效选择是 90% 或 80%

最后,指定具有临床意义的差异(效应值)

    在大多数临床试验中,目标是证明试验药物相对于对照药在有效性方面的优势。明确在主要指标方面被认为具有临床或科学重要性的差异至关重要。用 Δ 来表示这种差异。这种差异越大,所需的样本量就会越小。

R语言中通过pwr包实现功效分析。

对于每个函数,可以设定四个变量中的三个,由软件计算第四个变量。

pwr包中的函数

具体案例

t检验的样本量计算

基本函数:pwr.t.test (n= , d= , sig.level= , power= , type= , alternative= )

# n 样本量

# d 效应值,即标准化的均值之差,d = (μ1 – μ2) / # σ 也就是(组1均值 – 组2均值)/ 标准差

# sig.level:显著性水平,默认值0.05

# power:功效

# type:检验类型:两样本t检验(two.sample),单样本t检验(one.sample),配对t检验(paired),默认两样本t检验

# alternative:双侧检验还是单侧检验,双侧(two.sided),单侧(less或者greater),默认双侧检验

举例:

招募若干受试者,随机分配到2种情况,第1种情况,受试者边打手机边在模拟器中应对一系列驾驶挑战;第2种情况,在模拟器中应对一系列驾驶挑战,但不打手机。评估每个受试者的总体反应时间。假设反应时间标准差是1.25s,反应时间1s的差值是巨大差异。希望有90%把握检测到,95%的把握不会误报差异显著。这时,该研究需要多少受试者呢?

library (pwr)

pwr.t.test (d=1/1.25 , sig.level=0.05, power=0.9, type= ‘two.sample’)

结果表明,每组需要34例受试者(一共需要68例)。

比例检验的样本量计算

基本函数:pwr.2p.test (h = ES.h (p1, p2) , sig.level= , power= , type= )

# h=ES.h (p1, p2)表示效应值/两组有效率

举例:

假设对照药物疾病缓解率是60%,试验药是80%。在研究中我们需要多少受试者才能检测到两种药物存在这一特定的差异?90%的把握得出试验药更好的结论,希望有95%的把握不会误得结论。

library (pwr)

pwr.2p.test (h = ES.h (0.6, 0.8) , sig.level=0.05 , power= 0.9 )

结果表明,每组需要108例受试者(一共需要216例)。

临床研究样本量估算

方差分析样本量计算

基本函数:pwr.anova.test (k= , f= , sig.level= , power= )

# k表示组别个数

#f表示效应值

举例:

假设对5个组做单因素方差分析,需要达到0.8的贡献,效应值0.25,显著性水平0.05。各组需要多少样本量?

library (pwr)

pwr.anova.test (k= 5, f=0.25 , sig.level=0.05 , power=0.8 )

结果表明,每组需要40例受试者(一共需要200例)。

相关性样本量计算

基本函数:pwr.r.test (r= , sig.level= , power=, alternative= )

# r 表示效应值(通过线性相关系数衡量)

举例:

假定研究抑郁和孤独的关系。显著性水平0.05,相关性零假设H0:ρ<= 0.25,想有90%的信心,那么需要多少观测值?

library (pwr)

pwr.r.test (r= 0.25, sig.level=0.05 , power=0.9, alternative= ‘greater’)

结果表明,每组需要134例受试者。

卡方检验样本量计算

基本函数:pwr.chisq.test (w= , df= , sig.level= , power= )

# w 表示效应值

# df表示自由度

举例:

假设研究专业和工作晋升的关系。预期样本中70%的金融专业,10%计算机专业,20%的药学专业。我们认为相比30%的计算机专业和50%的药学专业,60%的金融专业更容易晋升。研究假设的晋升概率如下表所示:

预期中42%(0.7×0.6)是晋升的金融专业,7%(0.1×0.7)是计算机专业。取0.05显著性水平和0.90的预期功效水平。双联表自由度为(行数/r-1)(列数/c-1)

#计算效应值

prob<- matrix (c (0.42, 0.28, 0.03, 0.07, 0.10, 0.10), byrow=TRUE, nrow=3)

ES.w2 (prob)

效应值为0.1853

library (pwr)

pwr.chisq.test (w=0.1853 , df=2 , sig.level=0.05 , power= 0.9)

结果表明,需要369例受试者。

注:统计学中经常设计到生存分析的样本量估算,不在功效分析pwr包中。生存分析的样本量计算‌主要基于检验方法和回归模型‌,常用方法包括Log-rank检验和Cox比例风险回归模型。‌‌

球分享

球点赞

球在看