通过执行一些并仔细查看结果,可以增强对统计假设检验的功效分析的理解。
根据设计,尺寸的测试是打算用至少的一个机会,拒绝零假设当空为真(其预期的假阳性率)。αα 当我们有能力(或奢侈地)在具有此属性的替代程序中进行选择时,我们会更喜欢那些(a)实际上接近名义假阳性率,并且(b)在存在原假设时拒绝原假设的机会相对较高不对。
第二个标准要求我们规定以什么方式以及无效的数量是多少。在教科书的情况下,这很容易,因为替代方法的范围有限且明确指定。对于诸如Shapiro-Wilk之类的分布测试,替代方案更加模糊:它们是“非正常的”。然后,在分配测试中进行选择时,分析师可能必须进行自己的一次性能力研究,以评估测试与当前问题相关的更具体的替代假设的效果如何。
迈克尔·迈耶(Michael Mayer)的答案激发了一个例子,即替代分布的性质可能类似于Student t分布家族的性质。由数字(以及位置和比例)参数化的该族在大的极限内包括正态分布。ν≥1ν
在这两种情况下,无论是评估实际的测试量或其功效,我们都必须从指定的分布中生成独立的样本,对每个样本进行测试,然后找出其拒绝零假设的比率。 但是,任何测试结果中都有更多信息可用:其P值。通过保留在模拟过程中产生的一组P值,我们可以稍后评估测试可能拒绝任何可能关注的值的空值的速率。因此,功率分析的核心是一个子程序,该子程序会生成此P值分布(通过刚刚描述的仿真,或(有时)使用理论公式)。这是用编写的示例。其论点包括αR
其余参数控制结果的显示。它们主要是为了方便在此答案中生成数字而包括在内。
sim <- function(rdist, n, n.iter, prefix="",
breaks=seq(0, 1, length.out=20), alpha=0.05,
plot=TRUE, ...) {
# The simulated P-values.
# NB: The optional arguments "..." are passed to `rdist` to specify
# its parameters (if any).
x <- apply(matrix(rdist(n*n.iter, ...), ncol=n.iter), 2,
function(y) shapiro.test(y)$p.value)
# The histogram of P-values, if requested.
if (plot) {
power <- mean(x <= alpha)
round.n <- 1+ceiling(log(1 + n.iter * power * (1-power), base=10) / 2)
hist(x[x <= max(breaks)], xlab=paste("P value (n=", n, ")", sep=""),
breaks=breaks,
main=paste(prefix, "(power=", format(power, digits=round.n), ")", sep=""))
# Specially color the "significant" part of the histogram
hist(x[x <= alpha], breaks=breaks, col="#e0404080", add=TRUE)
}
# Return the array of P-values for any further processing.
return(x)
}
您可以看到计算实际上只需要一行;其余代码将绘制直方图。为了说明这一点,让我们用它来计算预期的误报率。“比率”是复数形式,因为测试的属性通常随样本大小而变化。众所周知,当样本量较大时,分布测试对定性较小的替代方法具有较高的功效,因此,本研究着重于在实践中经常应用的小样本范围内的此类测试:通常约到 为了节省计算量那时,我就值仅报告从至5100.n520.
n.iter <- 10^5 # Number of samples to generate
n.spec <- c(5, 10, 20) # Sample sizes to study
par(mfrow=c(1,length(n.spec))) # Organize subsequent plots into a tableau
system.time(
invisible(sapply(n.spec, function(n) sim(rnorm, n, n.iter, prefix="DF = Inf ")))
)
指定参数后,此代码也只是一行。它产生以下输出:
这是预期的外观:直方图显示从到的整个范围内P值几乎均匀分布。将标称尺寸设置为模拟报告实际上在P值的和之间小于该阈值:这些结果以红色突出显示。这些频率与标称值的接近程度证明了Shapiro-Wilk测试确实如广告所示执行。01α=0.05,.04810.0499
(似乎确实存在P值异常接近高频率的趋势。这几乎不用担心,因为在几乎所有应用程序中,仅查看的P值就等于或小于。)10.2
现在让我们评估一下功率。通过评估从到的几个实例,可以充分研究Student t分布 的值的整个范围。我怎么知道 我使用很少的迭代次数(从到)进行了一些初步运行,这根本不需要时间。现在的代码需要一个双循环(在更复杂的情况下,我们通常需要三个或四个循环来容纳我们需要改变的所有方面):一个研究功率随样本大小的变化,另一个研究功率随样本量的变化自由度。再一次,一切都只用一行代码(第三和最后一行)完成:νν=100ν=11001000
df.spec <- c(64, 16, 4, 2, 1)
par(mfrow=c(length(n.spec), length(df.spec)))
for (n in n.spec)
for (df in df.spec)
tmp <- sim(rt, n, n.iter, prefix=paste("DF =", df, ""), df=df)
对该表进行一些研究可以很好地了解力量。 我想提请注意其最突出和最有用的方面:
随着自由度从左侧的减少到右侧的,越来越多的P值变小,表明将这些分布与正态分布区分开的能力增加。(功效在每个图标题中均被量化:它等于红色的直方图面积的比例。)ν=64ν=1
随着样本大小从最上面一行的增加到最下面一行的,功效也会增加。n=5n=20
请注意,随着替代分布与零分布之间的差异越来越大,并且样本量增加,P值开始向左收集,但仍有“尾巴”将它们一直扩展到。这是力量研究的特征。它表明测试是一场赌博:即使公然违反了原假设,并且即使我们的样本量相当大,我们的正式测试也可能无法产生重要的结果。1
即使在在右下角,其中的样品的极端情况下由学生t分布中抽取与自由度(柯西分布),功率不是:有一个机会认为 iid Cauchy变量样本与正常值的差异不会达到(即置信度为)与正常值有显着差异。2011100−86.57=13%205%95%
我们可以通过为这些直方图上的条形上或多或少着色来选择任何值来评估功效。例如,要评估,请在每个直方图的左两个栏中显示颜色,并将其面积估计为总面积的一部分。αα=0.10
(对于此图来说,对于小于值,此方法效果不太好。实际上,只能将直方图限制在P值范围内(可能从到,并且向他们显示足够详细的信息,以便对功率降至甚至进行视觉评估(这是该选项的目的。)对模拟结果进行后处理可以提供更多细节。α0.05020%α=0.01α=0.005breaks
sim
有趣的是,实际上可以从三行代码中收集到很多东西:一行用于模拟指定分布中的iid样本,一行将其应用于空分布数组,第三行将其应用于一组替代分布。这是进行任何功率分析的三个步骤:剩下的只是对结果的总结和解释。