シード値とは?

シード値とは、乱数を生成するときに最初に設定する値のことです。乱数を生成するときに、このシード値を設定しておくと、再現性のある乱数を得ることができます。

Rで乱数を生成する方法

例えば、Rで正規分布に従う乱数を生成する場合、

rnorm(n, mean = 0, sd = 1)

のように入力します。しかし、これだけだと以下のように、このコードを実行するたびに作られる乱数が変わります。

> rnorm(10, mean = 0, sd = 1)
 [1]  1.0447744  0.3018403 -1.3154869 -0.6667864  0.6683990  0.2998708  0.4079035 -0.1672800  0.9068629
[10] -0.7918778
> rnorm(10, mean = 0, sd = 1)
 [1]  0.5481642 -0.9083905  0.2204785  1.0816230  0.8733535 -1.8600726 -0.0421499  0.3310948  1.3499128
[10]  1.4393975

シード値を設定して乱数を生成する

シード値を設定して乱数を生成することにより、毎回同じ値が得られるようになります。

シード値は、set.seed()を使って指定でき、()の中には任意の数値を記入します。

> set.seed(1234) #シード値を設定
> rnorm(10, mean = 0, sd = 1) 
 [1] -1.2070657  0.2774292  1.0844412 -2.3456977  0.4291247  0.5060559 -0.5747400 -0.5466319 -0.5644520
[10] -0.8900378
> rnorm(10, mean = 0, sd = 1)
 [1] -0.47719270 -0.99838644 -0.77625389  0.06445882  0.95949406 -0.11028549 -0.51100951 -0.91119542
 [9] -0.83717168  2.41583518


> set.seed(1234) #シード値を設定
> rnorm(10, mean = 0, sd = 1) 
 [1] -1.2070657  0.2774292  1.0844412 -2.3456977  0.4291247  0.5060559 -0.5747400 -0.5466319 -0.5644520
[10] -0.8900378
> rnorm(10, mean = 0, sd = 1)
 [1] -0.47719270 -0.99838644 -0.77625389  0.06445882  0.95949406 -0.11028549 -0.51100951 -0.91119542
 [9] -0.83717168  2.41583518
> 

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です