随机变量生成技术详解
1. 引言
在处理概率分布的模拟时,生成随机变量是一项关键任务。大部分模拟方法依赖于计算机生成各种分布的随机变量,而这又基于在区间 (0, 1) 上生成均匀随机变量。虽然我们不直接关注均匀随机变量的生成机制,因为现有的均匀生成器可以被认为是“完美的”,但我们会完全依赖这些生成器来生成其他随机变量。
R 语言拥有大量内置函数,可以生成标准随机变量。例如:
> rgamma(3,2.5,4.5)
上述代码可以生成三个来自 G(5/2, 9/2) 分布的独立随机变量。使用 R 语言的内置函数生成标准分布的随机变量是高效且安全的,而接下来要介绍的方法则主要用于处理 R 语言未内置的非标准分布。
1.1 均匀模拟
R 语言中的基本均匀生成器是 runif
函数,它唯一必需的参数是要生成的值的数量。其他可选参数 min
和 max
用于指定均匀分布的区间边界,默认值为 min = 0
和 max = 1
。例如:
> runif(100, min=2, max=5)
上述代码会生成 100 个在 2 到 5 之间均匀分布的随机变量。
严格来说,包括 runif
在内的所有方法生成的都是伪随机数,它们基于均匀 U(0, 1)