我设置种子,生成均匀分布的随机数,并使用逆CDF方法来得到一组正态分布的随机数的。然后,我重置种子并使用rnorm()
生成正态分布的随机数。结果是不同的。 R中的随机数生成器是否默认为Mersenne-Twister算法来生成整数?如果不是所有的R中的其他随机数(正常,均匀,指数等的分布)是这些伪随机整数的一些确定性的转型?为什么R命令RNORM()和qnorm(runif())产生不同的随机数?
set.seed(1)
u1 <- runif(5)
u1
# [1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819
z1 <- qnorm(u1)
z1
# [1] -0.6264538 -0.3262334 0.1836433 1.3297993 -0.8356286
set.seed(1)
z2 <- rnorm(5)
z2
# [1] -0.6264538 0.1836433 -0.8356286 1.5952808 0.3295078
是的,我看到的一些元素匹配,但不一定出现在相同的顺序。有人可以解释吗?
我觉得两个向量分享3个元素,你是正确的 - 只是看是相同的顺序被保留的元素。 – user2300944