Sto cercando di capire come funziona set.seed
in R. Capisco, in grado di riprodurre campioni casuali, ma non so qual è la differenza tra set.seed(1)
e set.seed(123)
?Argomento di set.seed in R
Che cosa significa l'argomento nella parentesi?
Sto cercando di capire come funziona set.seed
in R. Capisco, in grado di riprodurre campioni casuali, ma non so qual è la differenza tra set.seed(1)
e set.seed(123)
?Argomento di set.seed in R
Che cosa significa l'argomento nella parentesi?
L'argomento seed
in set.seed
è un valore singolo, interpretato come un intero (come definito nella help(set.seed())
. Il seed
in set.seed
produce valori casuali che sono unici per quel seed
(e saranno stessa indipendentemente dal computer che esegue e quindi assicura riproducibilità). Così i valori casuali generati dal set.seed(1)
e set.seed(123)
non sarà lo stesso, ma i valori casuali generati dal R nel vostro computer utilizzando set.seed(1)
e R nel mio computer usando lo stesso seed
sono la stessa cosa.
set.seed(1)
x<-rnorm(10,2,1)
> x
[1] 1.373546 2.183643 1.164371 3.595281 2.329508 1.179532 2.487429 2.738325 2.575781 1.694612
set.seed(123)
y<-rnorm(10,2,1)
> y
[1] 1.4395244 1.7698225 3.5587083 2.0705084 2.1292877 3.7150650 2.4609162 0.7349388 1.3131471 1.5543380
> identical(x,y)
[1] FALSE
T La maggior parte dei programmi per computer utilizza algoritmi deterministici per generare numeri casuali (il motivo per cui i numeri che generano non sono veramente casuali, ma pseudocasuali, che è abbastanza buono per la maggior parte degli scopi). R non è diverso, e puoi pensare ai numeri casuali che genera come parte di una lunga serie di numeri "casuali" che, una volta convocati, inizia appena ad un certo punto e sputa fuori numeri pseudocasuali per te. Usando lo set.seed()
si sta fondamentalmente dando al programma un punto di partenza invece di lasciarlo scegliere il suo. Ecco perché ogni utente che esegue lo stesso numero di seme otterrà gli stessi risultati.
È possibile eseguire ?RNGkind
per ulteriori informazioni sull'argomento.
Apparentemente, c'è un pacchetto R chiamato 'random' che genera vere variabili casuali. Non l'ho ancora provato (come ho detto, pseudocasuale di solito è abbastanza buono): http://dirk.eddelbuettel.com/code/random.html –
Prima di tutto, grazie mille per averlo spiegato in modo semplice. Ma come faccio a sapere quale numero deve essere inserito come parametro? – trollster
Non importa quale numero si sceglie poiché tutti generano valori casuali. – Metrics