Тест перестановки, сравнивающий один образец со средним

10

Когда люди применяют тесты перестановки для сравнения одной выборки со средним значением (например, как вы могли бы сделать с помощью t-критерия перестановки), как обрабатывается среднее значение? Я видел реализации, которые берут среднее и образец для теста перестановки, но неясно, что они на самом деле делают под капотом. Есть ли хотя бы осмысленный способ сделать перестановочный тест (например, t-тест) для одного образца в сравнении с предполагаемым средним значением? Или, в качестве альтернативы, они просто по умолчанию для неперестановочного теста под капотом? (например, несмотря на вызов функции перестановки или установку флага теста перестановки, по умолчанию используется стандартный t-тест или аналогичная функция)

В стандартном тесте перестановки с двумя выборками можно было бы иметь две группы и рандомизировать назначение меток. Однако как это обрабатывается, когда одна «группа» является предполагаемым средним значением? Очевидно, что предполагаемое среднее не имеет размера выборки само по себе. Итак, каков типичный способ преобразования среднего значения в формат перестановки? Предполагается, что «средняя» выборка представляет собой одну точку? Образец такого же размера, что и группа образцов? Образец бесконечного размера?

Учитывая, что предполагаемое среднее, ну, предполагается, я бы сказал, что технически оно имеет либо бесконечную поддержку, либо любую поддержку, которую вы хотите получить для него. Однако ни один из них не очень полезен для фактического вычисления. Образец одинакового размера со значениями, равными среднему, кажется тем, что иногда делают с некоторыми тестами (например, вы просто заполняете другую половину пар предполагаемым местоположением). Это имеет некоторый смысл, так как это образец равной длины, который вы увидите, если ваше предполагаемое среднее будет правильным без отклонений.

Поэтому мой вопрос заключается в следующем: на практике ли люди на самом деле эмулируют рандомизацию меток в стиле перестановочного теста, когда второй набор является средним (или аналогичным предполагаемым абстрактным значением)? Если да, то как люди справляются с рандомизацией меток, когда делают это?

Namey
источник
6
Тест перестановки определенного гипотетического среднего значения ничем не отличается от вычитания этого гипотетического среднего значения из данных и тестирования против среднего нуля. Парный тест обсуждается здесь ; это предполагает, что при нулевом значении пары имеют одинаковое распределение, что подразумевает, что различия, на которых основан последующий тест с одной выборкой, предполагаются симметричными. Исходя из этого, знаки случайным образом переключаются на каждую разницу ... (ctd)
Glen_b
1
2n
В этом есть смысл. Но я немного думаю о вычислительных реализациях, которые делают люди. Если вы можете превратить его в тест знака, люди на самом деле беспокоятся о расчете перестановок? Для любой последовательности длины N полный набор перестановок смещения знака будет одинаковым, нет? Так что я бы подумал, что под капотом люди могут просто направить его в биномиальный тест, а не вручную генерировать перестановки, которые создают биномиальное искажение. Я в основном задаюсь вопросом: есть ли преимущества для перемаркировки и перестановки по сравнению с использованием стандартного теста в случае единичной выборки и среднего значения?
Namey
kthxisi[k]|xi|s+11x10x10Все будет либо -11,43 или +11,43. Если бы вы ранжировали абсолютные данные первыми, вы бы на самом деле получили тест рангов со знаком Уилкоксона, так что это похоже на версию без оригинальных данных (исходные данные).
Glen_b

Ответы:

6

Расширение комментария Glen_b в ответ

Приближенный тест перестановки одной выборки для среднего значения выборки, против нулевой гипотезы нулевого среднего, реализуется путем присвоения случайных знаков данным в выборке. Ненулевые нулевые гипотезы могут быть проверены путем вычитания желаемого нулевого среднего из данных.

Это легко увидеть в источнике функции R onetPermutationв пакете 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
}
shadowtalker
источник