排列检验将单个样本与平均值进行比较


10

当人们实施置换测试以将单个样本与平均值进行比较时(例如,您可能会使用置换t检验),均值将如何处理?我已经看到了需要进行均值检验和样本才能进行置换测试的实现,但是目前尚不清楚它们实际上是在做什么。有没有一种有意义的方法可以对一个样本与假设的均值进行置换检验(例如t检验)?或者,它们只是在引擎盖下默认不进行置换测试?(例如,尽管调用了排列函数或设置了排列测试标志,但默认为标准t检验或类似函数)

在标准的两样本置换测试中,一个样本将具有两组并将标签的分配随机化。但是,当一个“组”是假设平均值时,该如何处理?显然,假设均值本身没有样本量。那么,将均值转换为排列格式的典型方法是什么?“平均”样本是否假定为单点?与样本组大小相等的样本?无限大小的样本?

假设一个假设均值是假设的,我会说它在技术上要么具有无限支持,要么具有您想要为其提供的任何支持。但是,这些都不对实际计算非常有用。值均等于平均值​​的大小相等的样本有时似乎是通过某些测试完成的(例如,只需用假定的位置填充对的另一半)。这很有道理,因为这是等长样本,您将看到假设均值正确无偏差。

所以我的问题是这样的:在实践中,当第二组是平均值(或相似的抽象假定值)时,人们是否真的会模拟置换测试样式标签的随机化?如果是这样,人们在这样做时如何处理标签随机化?


6
特定假设均值的置换检验与从数据中减去该假设均值并针对均值零进行检验没有区别。这里讨论配对测试; 它假设在零值对下,对具有相同的分布,这意味着后续的一样本测试所基于的差异被认为是对称的。在此基础上,每个差异上的符号随机翻转...(ctd)
Glen_b-恢复莫妮卡2013年

1
(ctd)...(对于成对的测试,等同于翻转组标签)。嗯,这是用于随机测试-对于完整的置换测试,您将进行符号翻转的所有可能组合。如果您不能假设对称性,那么很难看清要置换的内容-但您仍然应该能够进行引导测试。2ñ
Glen_b-恢复莫妮卡

这就说得通了。但是我从人们所做的计算实现中有所思考。如果您可以将其转换为符号测试,人们是否真的在计算排列?对于任何长度为N的序列,符号翻转的整个排列集合都是相同的,不是吗?因此,我认为在幕后,人们可能只是将其集中到二项式检验中,而不是手动生成使二项式分散的排列。我主要想知道与在单样本vs均值情况下使用标准测试相比,重新标记和置换是否/何时有好处。
Namey

我根本不建议将其转换为符号测试。在这种方案下,我讨论了符号被置换,但原始数据的绝对值被保留的问题。排列的的是其中为或。也就是说,如果在一次样本测试中为11.43,而平均值为零,则置换后的将全部为-11.43或+11.43。如果您将绝对数据排名第一,那么实际上您将获得Wilcoxon签名排名测试,因此就像该版本的非排名(原始数据)版本一样。ķX一世s一世[ķ]|X一世|s+1个-1个X10X10
Glen_b-恢复莫妮卡

Answers:


6

Glen_b的评论扩展为答案

通过为样本中的数据分配随机符号,可以实现针对样本均值的近似一样本置换测试,而不是零均值的零假设。可以通过从数据中减去所需的零均值来检验非零零假设。

onetPermutation在包中R函数的源代码中很容易看到这一点DAAG。这是相关代码的摘录,并添加了注释:

function (x, nsim) {

  ## Initialize and pre-allocate

  n <- length(x)
  dbar <- mean(x)
  absx <- abs(x)  # there's actually a bug in the code; below you'll see that the function ends up re-computing abs(x) instead of using this
  z <- array(, nsim)


  ## Run the simulation    

  for (i in 1:nsim) {                             # Do nsim times:
      mn <- sample(c(-1, 1), n, replace = TRUE)   #  1. take n random draws from {-1, 1}, where n is the length of the data to be tested
      xbardash <- mean(mn * abs(x))               #  2. assign the signs to the data and put them in a temporary variable
      z[i] <- xbardash                            #  3. save the new data in an array
  }


  ## Return the p value
  # p = the fraction of fake data that is:
  #      larger than |sample mean of x|, or
  #    smaller than -|sample mean of x|

  (sum(z >= abs(dbar)) + sum(z <= -abs(dbar)))/nsim
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.