R语言告诉你该做几个实验重复

1、一个例子

当你做完一个实验,得到以下数据:

处理:2.11     2.35     2.16

对照:2.32     2.34     2.43

t检验p值为0.1529,接下来你该怎么做,是继续埋头实验,重复着一次又一次的p>0.05,还是停下来对你目前所做的实验进行一个评估,加以改善,以确保有更大的把握得到显著性结果?鉴于此,本文试图解决以下两个问题:

1、以目前的实验操作能力,以目前的实验方法或仪器精度,继续以3个重复做这个实验,你有多大的概率拿到显著性结果。

2、如果你想要有90%的把握得到p<0.05甚至p<0.01的结果,该设计几个重复数比较合理。

2、R语言实现

以上两个问题可以使用R语言的pwr包帮你做一个功效分析,如果你还没有安装pwr包,请先安装。

本例中我们用的是t检验,因此使用pwr包中的pwr.t.test()函数,使用说明如下:

pwr.t.test(n=NULL, d=NULL,sig.level=0.05 ,power=NULL ,type=c("two.sample","one.sample","paired"),alternative=c("two.sided","less","greater"))

其中,n为重复数;d为效应值,即实验组与控制组之间“标准化后的平均差异程度;power为功效水平;type默认为双样本t检验;alternative默认为双侧检验。

第一个问题:

# 加载pwr包
library(pwr)

# 输入数据
trt <- c(2.11, 2.35, 2.16)
ck <- c(2.32, 2.34, 2.43)

# 计算离差平方和
ss1 <- var(trt) * (3 - 1)   # 方差*自由度
ss2 <- var(ck) * (3 - 1) 

# 计算效应值
d <- (mean(trt) - mean(ck)) / sqrt((ss1 + ss2) / (3 + 3 - 2))
    
# n=3时,p<0.05的概率估计
pwr.t.test(n = 3, d = d)

 Two-sample t test power calculation 

              n = 3
              d = 1.587983
      sig.level = 0.05
          power = 0.3212346
    alternative = two.sided

NOTE: n is number in *each* group

结果表明若继续以3个重复进行实验,只能有0.32的概率得到p<0.05的数据。

第二个问题:

# 90%的把握获得p<0.05的重复数
pwr.t.test(d=d,power=0.9)

 Two-sample t test power calculation 

              n = 9.406774
              d = 1.587983
      sig.level = 0.05
          power = 0.9
    alternative = two.sided

NOTE: n is number in *each* group

结果表明要有90%的把握得到p<0.05的数据,需要做9~10个重复。

3、拓展

1)效应值

实验结果容不容易取得显著性结果,很大程度取决于效应值高不高,你可以试试将效应值调大,看看power值的变化(本例算出的效应值为1.59)。而从效应值的公式看,分子部分表示均值之差,分母部分与样本方差有关,如果实验处理的效果是很明显的,表现为均值之差很大,这时即使你操作差一点或者选择的方法精度较低(表现为方差较大),结果还是很容易显著的。相反,如果你的处理本身效果不明显,你想把这么微小的差异表现出来,那么你就需要更熟练的操作,选择更精密的仪器或方法,尽量的减小误差,使得效应值变大,才能用更少的重复数做出来。

2)pwr包

本例使用的是pwr包中的pwr.t.test()函数,pwr包中还有其他的函数,列举如下:

函  数                               用途

pwr.2p.test()                 两比例(n相等)

pwr.2p2n.test()             两比例(n不相等)

pwr.anova.test()           平衡的单因素ANOVA

pwr.chisq.test()            卡方检验

pwr.f2.test()                 广义线性模型

pwr.p.test()                  比例(单样本)

pwr.r.test()                   相关系数

pwr.t2n.test()               t检验(n不相等的两样本) 

对于每个函数,你可以给定3个量(样本大小、功效和效应值) 中的2个获得第3个量,有兴趣的可自行了解。 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值