是否可以对 Kruskal-Wallis 和 Mann-Whitney U 检验进行功效分析?如果是,是否有任何 R 包/函数可以执行它?
使用 R 进行 Kruskal-Wallis 或 Mann-Whitney U 检验的功效分析?
当然可以计算功率。
更具体地说-如果您做出足够的假设以获得可以(以某种方式)计算拒绝概率的情况,则可以计算功率。
在 Wilcoxon-Mann-Whitney 中,如果(例如)您假设分布形状(对分布形式做出假设)并对位置的比例(价差)和特定值或位置差异做出一些假设,您可以通过代数或数值积分来计算功率;否则,您可以模拟拒绝率。
因此,例如,如果我们假设从具有指定位置差异的分布(标准化为通用尺度),然后给定样本大小,我们可以模拟许多满足所有这些条件的数据集,从而获得拒绝率的估计值。所以让我们假设我们有两个样本具有单位尺度的分布(位置尺度族)() - 不失一般性 - 并且有位置差异. 同样,在不失一般性的情况下,我们可以采取. 然后对于一些指定的样本量——(比如说)——我们可以模拟观察结果,从而模拟特定值的功率(IE)。这是 R 中的一个简单示例:
n1=6;n2=9;tdf=5;delta=1;al=0.05;nsim=10000
res = replicate(nsim,{y1=rt(n1,tdf);y2=rt(n2,tdf)+delta;wilcox.test(y1,y2)$p.value<=al})
mean(res) # res will be logical ("TRUE" = reject); mean is rej rate
三个类似的模拟产生了 0.321、0.321 和 0.316 的拒绝率;功率显然在 0.32 附近(您可以仅从这些模拟中的一个计算置信区间,因为拒绝计数是二项式的)。在实践中,我倾向于使用更大的模拟,但如果你模拟很多不同的的或您可能不想对每个模拟进行超过 10000 次模拟。
通过对位置偏移的许多值执行此操作,您甚至可以获得该组环境的功率曲线,因为如果您愿意,位置偏移会发生变化。
在大样本中加倍和就像减半(因此增加在给定的) 所以你经常可以在各种情况下得到很好的近似值仅通过少数模拟价值观。同样,对于单尾测试,如果是拒绝率然后 趋于接近线性(再次,允许在各种来自模拟的值只有几个值(十几个精心选择的值通常很多)。合理的平滑选择通常会在其他值下产生非常好的功率近似值或者.
当然,您不必将自己限制在位置变化中。任何可能导致参数变化的参数变化将是您可以调查的事情。
请注意,虽然这些测试在零值下是无分布的(对于连续分布),但在备选方案的不同分布假设下,行为是不同的。
Kruskal-Wallis 的情况类似,但您有更多的位置变化(或您正在查看的任何其他情况)要指定。
此答案中的图显示了配对 t 检验的功效曲线与特定样本大小的有符号秩检验的模拟功效的比较,跨越各种标准化位置偏移,用于从具有指定对之间的相关性的正态分布中采样。可以对 Mann-Whitney 和 Kruskal-Wallis 进行类似的计算。
我和你有完全相同的问题。经过一番搜索,我MultNonParam
在 R ( pdf ) 中找到了这个包:
kwpower(nreps, shifts, distname=c("normal","logistic"), level=0.05, mc=0, taylor=FALSE)
nreps
: 每组的数字。shifts
:在备择假设下,不同人群的偏移量。distname
:基础观察的分布;目前支持正常和逻辑。level
: 测试级别。mc
: 0 表示渐近计算,或正表示 mc 近似。taylor
: 逻辑确定泰勒级数近似是否用于概率。