Sto creando pregiudizi usando sempre lo stesso seme casuale?


31

In quasi tutto il lavoro di analisi che io abbia mai fatto uso:

set.seed(42) 

È un omaggio a Hitchhiker's Guide to the Galaxy . Ma mi chiedo se sto creando pregiudizi usando sempre lo stesso seme.


9
Come usi i semi? A seconda del caso d'uso tipico, la risposta varia da sì a no.
Momo,

Brandon, e se le persone ti rispondessero SÌ? Cosa farai? Mi sento in apprensione.
ttnphns,

@Momo Diciamo solo che l'ho sempre impostato, per paura di dimenticarlo e non riuscire a riprodurre i miei risultati. Questo avviene attraverso diversi tipi di esperimenti indipendenti. Gradirei capire sia i casi sì che no.
Brandon Bertelsen il

@ttnphns Trattalo come una lezione imparata?
Brandon Bertelsen il

È OK allo scopo di riprodurre i risultati, siano essi di parte o meno. Ma a meno che la dimensione del tuo campione (numero di esperimenti o osservazioni indipendenti) prodotto sotto quel seme non si avvicini all'infifnità, alcuni pregiudizi persisteranno. Nota due cose più importanti: di solito usiamo generatori pseudo casuali che complicano le conseguenze per te. Le conseguenze dipendono anche dal tipo di generatore casuale che usi (ad esempio Mersenne twister o cosa?). Pertanto, per prove serie di qualcosa di casuale è sempre meglio impostare il seme su casuale.
ttnphns,

Risposte:


31

Non c'è parzialità se l'RNG è buono. Usando sempre lo stesso seme, crei comunque una forte interdipendenza tra tutte le simulazioni che esegui nella tua carriera. Questo crea un tipo insolito di rischio.

  • Usando lo stesso seme ogni volta, o stai sempre ottenendo una sequenza pseudocasuale piuttosto bella e tutto il tuo lavoro va bene o - con probabilità molto bassa ma diversa da zero - stai sempre usando una sequenza piuttosto cattiva e le tue simulazioni non lo sono come rappresentante delle distribuzioni sottostanti come pensi possano essere. O tutto il tuo lavoro è abbastanza buono o tutto è piuttosto schifoso!

  • Contrastalo con l'uso di semi di partenza veramente casuali ogni volta. Di tanto in tanto potresti ottenere una sequenza di valori casuali che non è rappresentativa della distribuzione che stai modellando, ma la maggior parte delle volte staresti bene. Se non hai mai provato a riprodurre il tuo lavoro (con un nuovo seme), una o due volte nella tua carriera potresti ottenere risultati fuorvianti, ma la maggior parte delle volte starai bene.

C'è una cura semplice ed evidente: controlla sempre il tuo lavoro riavviando con un altro seme. È praticamente impossibile che due semi accidentalmente producano risultati fuorvianti allo stesso modo.

D'altra parte, c'è un merito straordinario nell'avere un noto "seme personale": mostra al mondo che sei onesto. Un modo subdolo e sottile di mentire con le simulazioni è quello di ripeterle fino a quando non danno un risultato predeterminato. Ecco un Resempio funzionante per "dimostrare" che anche una moneta giusta è altamente probabile che faccia atterrare teste più della metà delle volte:

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")

11061007550p=0.000004

Le implicazioni possono essere affascinanti e importanti. Ad esempio, se sapessi in anticipo chi avrei reclutato in uno studio randomizzato controllato in doppio cieco e in quale ordine (che potrei essere in grado di controllare come professore universitario che verifica un gruppo di studenti in cattività o ratti di laboratorio), allora in anticipo ho potuto eseguire una serie di simulazioni per trovare un seme che raggruppasse gli studenti a mio piacimento per favorire qualsiasi cosa sperassi di "provare". Potrei includere l'ordine pianificato e quel seme nel mio piano sperimentale primacondurre l'esperimento, creando così una procedura che nessun critico critico avrebbe mai potuto mettere in discussione, ma comunque impilando il mazzo a mio favore. (Credo che ci siano intere branche della pseudoscienza che usano una variante di questo trucco per guadagnare credibilità. Credi davvero di aver usato ESP per controllare il computer? Posso farlo anche a distanza con il tuo!)

Qualcuno il cui seme predefinito è noto non può giocare a questo gioco.

Il mio seed personale è 17 , come attestano gran parte dei miei post (attualmente 155 dei 161 post che impostano un seed usano questo). In Resso è un seme difficile da lavorare, perché (a quanto pare) la maggior parte dei piccoli gruppi di dati che creo con esso hanno un forte valore anomalo. Non è una cattiva caratteristica ...


5
17

4
@Matthew Risale a un gruppo di studenti delle scuole superiori con un interesse comune per la matematica che studiavano teoria dei numeri un'estate molto tempo fa. Uno, per quanto ricordo, ha proposto scherzosamente 17 come numero intero archetipico e il nostro gruppo ha rapidamente trovato molte razionalizzazioni per questo, alcune di interesse matematico e altre semplicemente umoristiche (almeno dal punto di vista di un secchione di matematica). Ci sono interessanti proprietà matematiche e storiche di questo numero che lo distinguono per l'attenzione, come la scoperta di Gauss della costruibilità del 17 gon. RIl comportamento è puramente accidentale.
whuber

4
@Matthew BTW, il mio seme è legato a quello di Brandon: ci sono esattamente 42 coppie ordinate di numeri primi integrali distinti di dimensione 17 o inferiore :-).
whuber

8
Ero in grado di costruire un 17 gon con righello e bussola come un trucco di partito. Bene, per la giusta definizione di festa immagino ...
Matthew Drury,

1
@MatthewDrury stanno facendo scoppiare bottiglie alla tua festa.
Brandon Bertelsen,

2

Come detto sopra, un buon RNG non genererà distorsioni dall'uso dello stesso seme. Tuttavia, ci sarà una correlazione tra i risultati. (Lo stesso numero pseudo-casuale avvierà ogni calcolo.) Se questo conta non è una questione di matematica.

L'utilizzo dello stesso seed a volte è OK: per il debug o quando sai di volere risultati correlati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.