R(統計解析)

2025年1月 1日 (水)

[R]乱数の発生を再現する

runif関数などの乱数を発生させる関数を実行する前に、set.seed関数に任意の整数を与えて実行することで、同じ乱数を発生させることができるようになる。

以下の例のとおり、set.seed関数に3を与えて実行した後は、まったく同じ乱数が得られていることがわかる。

> runif(4)
[1] 0.41928296 0.26762217 0.04780944 0.10349305
> runif(4)
[1] 0.3140315 0.8006411 0.2293247 0.2129984
> set.seed(3)
> runif(4)
[1] 0.1680415 0.8075164 0.3849424 0.3277343
> runif(4)
[1] 0.6021007 0.6043941 0.1246334 0.2946009
> set.seed(4)
> runif(4)
[1] 0.585800305 0.008945796 0.293739612 0.277374958
> runif(4)
[1] 0.8135742 0.2604278 0.7244059 0.9060922
> set.seed(3)
> runif(4)
[1] 0.1680415 0.8075164 0.3849424 0.3277343
> runif(4)
[1] 0.6021007 0.6043941 0.1246334 0.2946009

2024年12月28日 (土)

[R]正規分布する乱数を得る

rnorm関数を使う。rnorm関数は正規分布に基づく乱数を返す。第一引数に指定した個数の実数を返す。デフォルトでは平均0、標準偏差1の正規分布の基づく乱数を返すが、meanオプションとsdオプションに正規分布の平均と標準偏差の値をそれぞれ指定することができる。

> rnorm(6)
[1] 0.8549655 1.6048736 -0.7680202 -0.6509009 0.3799471 1.4280449
> rnorm(6, mean = 10)
[1] 8.030706 9.324379 9.554407 9.463829 11.769583 8.810051
> rnorm(6, mean = 20, sd = 2)
[1] 19.10057 21.46614 20.83233 23.92880 22.03404 16.10972
> hist(rnorm(10 ^ 7, mean = 50, sd = 5), breaks = 40)

2024年12月27日 (金)

[R]一様分布する乱数を得る

runif関数を使う。runif関数は一様分布(指定の範囲内で各値が一様の確率で現れる分布)に基づく乱数を返す。第一引数に指定した個数の実数を返す。デフォルトでは0<x<1の範囲内の値を返すが、minオプションとmaxオプションに一様分布の範囲の両端の値をそれぞれ指定することができる。

マニュアルには「runif will not generate either of the extreme values unless max = min or max-min is small compared to min, and in particular not for the default arguments. 」とあり、原則両端の値は含まない乱数が返されることに注意。

> runif(6)
[1] 0.73539532 0.02306577 0.92723891 0.09129656 0.27582346 0.32496829
> runif(5, min = 0.5)
[1] 0.9989089 0.7668412 0.7744202 0.5232379 0.5672689
> runif(4, min = 0, max = 100)
[1] 78.59427 53.52239 65.26063 29.73860
> hist(runif(10 ^ 7), breaks = 100)
無料ブログはココログ

■■

■■■