Teste de permutação comparando uma única amostra com uma média

10

Quando as pessoas implementam testes de permutação para comparar uma única amostra com uma média (por exemplo, como você pode fazer com um teste t de permutação), como a média é tratada? Vi implementações que levam uma média e uma amostra para um teste de permutação, mas não está claro o que eles estão realmente fazendo sob o capô. Existe mesmo uma maneira significativa de fazer um teste de permutação (por exemplo, teste t) para uma amostra versus uma média assumida? Ou, alternativamente, eles estão simplesmente deixando de lado um teste de não permutação sob o capô? (por exemplo, apesar de chamar uma função de permutação ou definir um sinalizador de teste de permutação, padronizar para um teste t padrão ou função similar)

Em um teste padrão de permutação de duas amostras, haveria dois grupos e aleatoriamente a atribuição dos rótulos. No entanto, como isso é tratado quando um "grupo" é uma média assumida? Obviamente, uma média assumida não tem tamanho de amostra por si só. Então, qual é a maneira típica de trabalhar a média em um formato de permutação? A amostra "média" é considerada um ponto único? Uma amostra de tamanho igual ao grupo de amostras? Uma amostra de tamanho infinito?

Dado que uma média assumida é, bem, assumida - eu diria que tecnicamente possui um suporte infinito ou qualquer outro suporte que você queira assumir. No entanto, nenhum deles é muito útil para um cálculo real. Uma amostra de tamanho igual com valores iguais à média parece ser o que é feito algumas vezes com alguns testes (por exemplo, você apenas preenche a outra metade dos pares com o local assumido). Isso faz um pouco de sentido, pois é a amostra de igual comprimento que você veria se sua média assumida estivesse correta sem variação.

Portanto, minha pergunta é a seguinte: na prática, as pessoas realmente imitam a aleatorização de rótulos de estilo de teste de permutação quando o segundo conjunto é um valor médio (ou um valor assumido abstrato semelhante)? Se sim, como as pessoas lidam com a randomização de etiquetas quando fazem isso?

Namey
fonte
6
Um teste de permutação de uma média hipotética específica não é diferente de subtrair essa média hipotética dos dados e testar contra uma média de zero. Um teste emparelhado é discutido aqui ; supõe que, sob o nulo, os pares tenham a mesma distribuição, o que implica que as diferenças nas quais o teste subsequente de uma amostra se baseia sejam consideradas simétricas. Nessa base, os sinais são
alternados
1
2n
Isso faz sentido. Mas estou pensando um pouco nas implementações computacionais que as pessoas fazem. Se você pode transformá-lo em um teste de sinal, as pessoas realmente se preocupam em calcular as permutações? Para qualquer sequência de comprimento N, o conjunto completo de permutações de sinal flips seria o mesmo, não? Então, eu pensaria que, sob o capô, as pessoas podem simplesmente canalizá-lo para um teste binomial, em vez de gerar manualmente as permutações que causam uma distração binomial. Estou me perguntando principalmente se / quando há benefícios em reclassificar e permutar versus usar um teste padrão no caso de amostra única versus média.
Namey
kºxEusEu[k]|xEu|s+1-1x10x10todos seriam -11,43 ou + 11,43. Se você classificasse os dados absolutos primeiro, na verdade você terminaria com um teste de classificação assinado por Wilcoxon, então é como a versão sem classificação (dados originais) disso.
Glen_b -Reinstar Monica

Respostas:

6

Expandindo o comentário de Glen_b para uma resposta

Um teste aproximado de permutação de uma amostra para a média de uma amostra, contra uma hipótese nula de média zero, é implementado atribuindo sinais aleatórios aos dados da amostra. Hipóteses nulas diferentes de zero podem ser testadas subtraindo a média nula desejada dos dados.

Isso é fácil de ver na fonte da função R onetPermutationno pacote DAAG. Aqui está um trecho do código relevante, com os comentários que eu adicionei:

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
fonte