2013-08-13 11 views
5

Ich versuche zu verstehen, wie set.seed in R funktioniert. Ich verstehe es, kann Stichproben reproduzieren, aber ich weiß nicht, was ist der Unterschied zwischen set.seed(1) und set.seed(123)?Argument von set.seed in R

Was bedeutet das Argument in der Klammer?

Antwort

5

Das seed Argument in set.seed ist ein einzelner Wert, als Integer interpretiert (wie in help(set.seed()) definiert. Die seed in set.seed erzeugen Zufallswerte, die zu diesen seed eindeutig sind (und wird gleich sein, unabhängig von dem Computer Sie laufen und somit So erzeugt wird sichergestellt, Reproduzierbarkeit). die Zufallswerte von set.seed(1) und set.seed(123) nicht die gleiche sein wird, aber die Zufalls durch R erzeugten Werte in Ihrem Computer set.seed(1) und durch R in meinem Computer mit der gleichen seed gleich sind.

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

Zunächst einmal vielen Dank für die Erklärung auf eine einfache Art und Weise. Aber woher weiß ich, welche Zahl als Parameter eingeht? – trollster

+0

Es spielt keine Rolle, welche Nummer Sie wählen, da alle Zufallswerte generieren. – Metrics

3

T Die Mehrheit der Computerprogramme verwendet deterministische Algorithmen, um Zufallszahlen zu erzeugen (deshalb sind die Zahlen, die sie erzeugen, nicht wirklich zufällig, sondern pseudozufällig, was für die meisten Zwecke gut genug ist). R ist nicht anders, und Sie können sich die Zufallszahlen vorstellen, die es als Teil einer sehr langen Reihe von "zufälligen" Zahlen erzeugt, die, wenn sie beschworen werden, einfach an einem Punkt beginnen und Pseudozufallszahlen für Sie ausspucken. Indem Sie set.seed() verwenden, geben Sie dem Programm grundsätzlich einen Startpunkt, anstatt es selbst wählen zu lassen. Aus diesem Grund erhält jeder Benutzer, der die gleiche Startnummer verwendet, die gleichen Ergebnisse.

Sie können ?RNGkind für weitere Informationen zu diesem Thema ausführen.

+0

Offenbar gibt es ein R-Paket namens 'random', das echte Zufallsvariablen generiert. Habe es aber nicht getestet (wie gesagt, pseudozufällig ist meistens gut genug): http://dirk.eddelbuettel.com/code/random.html –

Verwandte Themen