2013-08-13 45 views
5

set.seedがRでどのように動作するかを理解しようとしていますが、ランダムサンプルを再現できますが、set.seed(1)set.seed(123)の違いは何ですか?R内のset.seedの引数

括弧内の引数は何を意味しますか? set.seed

答えて

5

seed引数はhelp(set.seed())で定義されるように整数として解釈単一の値、(ある。set.seedseedそのseedに固有のランダム値を生成する(関係なく、実行するコンピュータの、従って同じになります同じseedを使用して私のコンピュータで)再現性を保証します。だから、set.seed(1)set.seed(123)によって生成されるランダムな値は同じではありませんが、お使いのコンピュータにRによって生成されるランダムな値set.seed(1)を使用し、Rによって同じです。

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

まず、簡単な方法で説明してくれてありがとうございます。しかし、どの数字をパラメータとして入力する必要があるのか​​をどのように知るのですか? – trollster

+0

これらはすべてランダムな値を生成するので、どの番号を選択しても問題ありません。 – Metrics

3

Tコンピュータプログラムの大部分は、決定論的アルゴリズムを使用して乱数を生成します(乱数を生成する理由は本当にランダムではありませんが、ほとんどの目的には十分です)。 Rは変わりません。生成する乱数は、非常に長い乱数の文字列の一部であると考えることができます。乱数は、呼び出されるとちょうどある時点から始まり、擬似乱数を吐き出します。 set.seed()を使用することで、基本的にプログラムに独自のものを選択させるのではなく、開始点を与えることになります。そのため、同じシード番号を実行するすべてのユーザーが同じ結果を得るのはこのためです。

件名の詳細については?RNGkindを実行できます。

+0

明らかに、真のランダム変数を生成する 'random'というRパッケージがあります。私は言ったように、それをテストしていない(通常、擬似乱数は十分です):http://dirk.eddelbuettel.com/code/random.html –