2013-08-13 46 views
5

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?

risposta

5

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 
+0

Prima di tutto, grazie mille per averlo spiegato in modo semplice. Ma come faccio a sapere quale numero deve essere inserito come parametro? – trollster

+0

Non importa quale numero si sceglie poiché tutti generano valori casuali. – Metrics

3

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.

+0

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 –

Problemi correlati