Estou criando viés usando a mesma semente aleatória repetidamente?

31

Em quase todo o trabalho de análise que já fiz, uso:

set.seed(42) 

É uma homenagem ao Guia do Mochileiro das Galáxias . Mas estou pensando se estou criando viés usando a mesma semente repetidamente.

Brandon Bertelsen
fonte
9
Como você usa sementes? Dependendo do seu caso de uso típico, a resposta varia de sim a não.
Momo
Brandon, e se as pessoas responderem a você SIM? O que você vai fazer? Eu me sinto apreensivo.
ttnphns
@Momo Digamos que eu sempre o defino, por medo de esquecê-lo e por não poder reproduzir meus resultados. Isso ocorre entre tipos independentes e diferentes de experiências. Eu apreciaria entender os casos sim e não.
precisa
@ttnphns Trate-o como uma lição aprendida?
Brandon Bertelsen
Não há problema com a finalidade de reproduzir resultados, sejam eles tendenciosos ou não. Mas, a menos que o tamanho da amostra (número de experimentos ou observações independentes) produzido sob essa semente se aproxime da infidelidade, algum viés persistirá. Observe duas coisas mais importantes: geralmente usamos geradores pseudo- aleatórios, o que complica as consequências para você. As conseqüências também dependem de que tipo de gerador aleatório você usa (por exemplo, Mersenne twister ou o quê?). Assim, para testes sérios de algo aleatório, é sempre melhor definir a semente como aleatória.
ttnphns

Respostas:

31

Não há viés se o RNG for bom. Porém, ao sempre usar a mesma semente, você cria uma forte interdependência entre todas as simulações que realiza em sua carreira. Isso cria um tipo incomum de risco.

  • Ao usar a mesma semente de cada vez, ou você sempre obtém uma sequência pseudo-aleatória bastante agradável e todo o seu trabalho corre bem ou - com uma probabilidade muito baixa, mas diferente de zero - você está sempre usando uma sequência muito ruim e suas simulações não são como representante das distribuições subjacentes como você pensa que elas possam ser. Todo o seu trabalho é muito bom ou muito ruim!

  • Compare isso com o uso de sementes iniciais verdadeiramente aleatórias de cada vez. De vez em quando, você pode obter uma sequência de valores aleatórios que não são representativos da distribuição que está modelando, mas na maioria das vezes você fica bem. Se você nunca tentou reproduzir seu próprio trabalho (com uma nova semente), uma ou duas vezes na carreira poderá obter resultados enganosos, mas na grande maioria das vezes você estará bem.

Existe uma cura simples e óbvia: sempre, sempre verifique seu trabalho reiniciando com outra semente. É praticamente impossível que duas sementes acidentalmente dêem resultados enganosos da mesma maneira.

Por outro lado, há um mérito extraordinário em ter uma "semente pessoal" conhecida: mostra o mundo em que você está sendo honesto. Uma maneira astuta e sutil de se deitar com simulações é repeti-las até que elas produzam um resultado predeterminado. Aqui está um Rexemplo prático para "demonstrar" que mesmo uma moeda justa é altamente provável que caia cara mais da metade do tempo:

n.flips <- 100
seeds <- 1:10^3
#
# Run some preliminary simulations.
#
results <- sapply(seeds, function(seed) {
  set.seed(seed)
  mean(runif(n.flips) > 1/2)
})
#
# Now do the "real" simulation.
#
seed <- seeds[which.max(results)]
set.seed(seed)
x <- mean(runif(n.flips) > 1/2)
z <- (x - 1/2) * 2 * sqrt(n)
cat("Mean:", x, "Z:", z, "p-value:", pnorm(z, lower.tail=FALSE), "\n")

11061007550.p=0,000004

As implicações podem ser fascinantes e importantes. Por exemplo, se eu soubesse de antemão quem estaria recrutando para um estudo controlado randomizado, duplo-cego e em que ordem (que eu poderia controlar como professor universitário testando um grupo de graduados ou ratos de laboratório), então de antemão, eu poderia executar um conjunto de simulações para encontrar uma semente que agrupasse os alunos mais ao meu gosto para favorecer o que eu esperava "provar". Eu poderia incluir a ordem planejada e essa semente no meu plano experimental antesconduzindo o experimento, criando, assim, um procedimento que nenhum revisor crítico jamais poderia acusar - mas, mesmo assim, empilhando o baralho a meu favor. (Acredito que existem ramos inteiros da pseudociência que usam alguma variante desse truque para ganhar credibilidade. Você acreditaria que eu realmente usei o ESP para controlar o computador? Também posso fazer isso à distância com o seu!)

Alguém cuja semente padrão é conhecida não pode jogar este jogo.

Minha semente pessoal é 17 , como atesta uma grande parte das minhas postagens (atualmente 155 das 161 postagens que definiram uma semente usam essa). Em Rque é uma semente difícil trabalhar com, porque (como se vê) a maioria dos pequenos conjuntos de dados que criar com ele têm um outlier forte. Isso não é uma característica ruim ....

whuber
fonte
5
17
4
@ Matthew Voltar para um grupo de estudantes do ensino médio com um interesse compartilhado em matemática que estavam estudando teoria dos números há um verão. Um, pelo que me lembro, propôs brincando 17 como o número inteiro arquetípico e nosso grupo rapidamente encontrou muitas racionalizações para isso, algumas de interesse matemático e outras meramente engraçadas (pelo menos do ponto de vista de um nerd de matemática). Existem propriedades matemáticas e históricas interessantes desse número que o destacam pela atenção, como a descoberta de Gauss da construtibilidade dos 17-gon. Ro comportamento é puramente acidental.
whuber
4
@ Matthew BTW, minha semente está relacionada à de Brandon: existem precisamente 42 pares ordenados de números primos integrais distintos, de tamanho 17 ou menos :-).
whuber
8
Eu costumava ser capaz de construir um 17-gon com régua e bússola como um truque de festa. Bem, para a definição direita do partido eu acho ...
Matthew Drury
1
@MatthewDrury eles estouram garrafas na sua festa.
precisa
2

Como afirmado acima, um bom RNG não gerará viés abaixo do uso da mesma semente. No entanto, haverá uma correlação entre os resultados. (O mesmo número pseudo-aleatório iniciará cada cálculo.) Se isso importa não é uma questão de matemática.

Às vezes, usar a mesma semente é bom: para depuração ou quando você sabe que deseja resultados correlacionados.

ttw
fonte