R语言:逆变换法生成随机数

一、概念解释

1、PDF

probability density function 概率密度函数,简称密度函数。连续型随机变量的概率密度函数是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数

借陈希孺老师所著的《概率论与数理统计》中关于概率密度函数的释义以方便理解概念。
在这里插入图片描述

2、PMF

probability mass function 概率质量函数, 概率质量函数是离散随机变量在各特定取值上的概率(就是离散型随机变量的分布律)

例如,抛掷硬币,若为正面记X = 1,反面记x = 0,则概率质量函数为:
在这里插入图片描述

3、CDF

cumulative distribution function 累积分布函数 ,也叫分布函数,是概率密度函数的积分

常用积分表

二、连续型情况举例

步骤:
1、设U = 概率密度函数积分 = 分布函数
2、分布函数求逆,得到x = 式①
3、构造符合均匀分布的随机数 U = runif(num, start, stop)
4、随机数U代入step2中式①,即可得到对应随机数
5、验证生成的x是否符合预期: 绘制x的频数直方图,绘制总体密度函数曲线

利用逆变换法生成1000个服从 f x ( x ) = 3 x 2 , 0 < x < 1 f_x(x) = 3x^2 ,0 < x < 1 fx(x)=3x2,0<x<1的随机数。
在这里插入图片描述
代码实现:

U = runif(1000,0,1)  # 生成1000个服从[0,1]均匀分布的随机数
x = U^(1/3)   # 式① 生成服从题目分布的随机数
hist(x, prob = TRUE)  # 绘制生成随机数x的频数直方图
xx = seq(0,1,0.1)
lines(xx ,3 * xx ^ 2)  # 绘制密度函数,与频数分布直方图的趋势作比较

部分结果展示:
在这里插入图片描述

验证结果展示:
在这里插入图片描述
练习:
利用逆变换法生成服从 f x ( x ) = x − 2 8 , 2 < x < 6 f_x(x) = \frac{x-2}{8}, 2 < x < 6 fx(x)=8x2,2<x<6的5000个随机数。
在这里插入图片描述
代码实现:

U = runif(5000,0,1)  # 生成1000个服从[0,1]均匀分布的随机数
x = 4*sqrt(U)+2   # 式① 生成服从题目分布的随机数
hist(x, prob = TRUE)  # 绘制生成随机数x的频数直方图
xx = seq(2,6,0.1)
lines(xx ,(xx-2)/8)  # 绘制密度函数,与频数分布直方图的趋势作比较

三、离散型情况举例

离散型生成随机数的四种方法:
① R语言内置函数
② sample函数
③ 逆变换法
④ 接受拒绝法

步骤:
1、对照列联表写分布函数
2、分布函数求逆
3、构造符合均匀分布的随机数 U = runif(num, start, stop)
4、随机数U代入step2中式①,即可得到对应随机数
5、验证生成的x是否符合预期: 制表统计看频率

利用逆变换法生成1000个服从下列概率质量函数的随机数。

X01234
P0.10.20.20.20.3

在这里插入图片描述
代码实现:

n = 1000
x = seq(0, 4, 1)
p = c(0.1, 0.2, 0.2, 0.2, 0.3)
FF = c(0,cumsum(p)); FF  #累加得到分布函数
y1 = integer(n)  # 逻辑向量
m = length(FF)
u = runif(n)  # 生成1000个服从[0,1]均匀分布的随机数
for(i in 1:m-1){  # u代入逆运算的结果
  ind = u>FF[i] & u<=FF[i+1];  # or = |   and = &
  y1[ind]=x[i];
}; y1
table(y1)/n   # 频数验证

部分结果展示:
在这里插入图片描述
验证结果展示:
在这里插入图片描述

  • 35
    点赞
  • 269
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值