上周我参加了人格与社会心理学协会的一次会议,在那里我看到了 Uri Simonsohn 的演讲,其前提是使用先验功效分析来确定样本量基本上是无用的,因为它的结果对假设非常敏感。
当然,这种说法违背了我在方法课上所教的内容,也违背了许多著名方法学家的建议(最著名的是Cohen,1992 年),因此 Uri 提出了一些与他的说法有关的证据。我试图在下面重新创建其中的一些证据。
为简单起见,让我们假设您有两组观察结果并猜测效应大小(通过标准化平均差测量)为。标准功效计算(使用下面的软件包完成)将告诉您需要次观察才能获得此设计的 80% 功效。R
pwr
require(pwr)
size <- .5
# Note that the output from this function tells you the required observations per group
# rather than the total observations required
pwr.t.test(d = size,
sig.level = .05,
power = .80,
type = "two.sample",
alternative = "two.sided")
然而,通常我们对预期效果大小的猜测(至少在我的研究领域的社会科学中)只是——非常粗略的猜测。如果我们对效应大小的猜测有点偏离会发生什么?快速功效计算告诉您,如果效应大小是而不是,则您需要观察值 -效应大小需要足够功效所需数量的倍。同样,如果效应大小为,您只需要观察值,即您需要有足够的功效来检测. 实际上,估计观测值的范围相当大 -到。
对此问题的一种回应是,您不是纯粹猜测影响的大小,而是通过过去的文献或试点测试收集有关影响大小的证据。当然,如果您正在进行试点测试,您会希望您的试点测试足够小,以至于您不仅仅是为了确定运行研究所需的样本量而运行您的研究版本(即,您将希望试点测试中使用的样本量小于您研究的样本量)。
Uri Simonsohn 认为,为了确定功效分析中使用的效应大小而进行的试点测试是没有用的。考虑以下我运行的模拟R
。该模拟假设总体效应大小为。然后它会进行次大小为 40 的“试点测试”,并从 10000 次试点测试中的每一个中列出推荐的
set.seed(12415)
reps <- 1000
pop_size <- .5
pilot_n_per_group <- 20
ns <- numeric(length = reps)
for(i in 1:reps)
{
x <- rep(c(-.5, .5), pilot_n_per_group)
y <- pop_size * x + rnorm(pilot_n_per_group * 2, sd = 1)
# Calculate the standardized mean difference
size <- (mean(y[x == -.5]) - mean(y[x == .5])) /
sqrt((sd(y[x == -.5])^2 + sd(y[x ==.5])^2) / 2)
n <- 2 * pwr.t.test(d = size,
sig.level = .05,
power = .80,
type = "two.sample",
alternative = "two.sided")$n
ns[i] <- n
}
下面是基于此模拟的密度图。我省略个试点测试,这些测试推荐了超过个的观察值,以使图像更易于解释。即使关注不太极端的模拟结果,试点测试推荐
当然,我确信对假设问题的敏感性只会随着设计变得更加复杂而变得更糟。例如,在需要指定随机效应结构的设计中,随机效应结构的性质将对设计的能力产生重大影响。
那么,大家对这个论点怎么看呢?先验功率分析本质上是无用的吗?如果是,那么研究人员应该如何规划他们的研究规模?