分类型变量预测连续型变量_连续型随机变量的模拟-拒绝法

785ac335b556854ea353ea77a9d2243a.png

我们前面已经讲过可以用逆变换法对连续型随机变量进行模拟。该方法必须保证分布函数的逆函数有一个显式的表达。这在大多数情况下是很难做到的。比如正态分布的分布函数就没有显式的表达,更不说其逆函数了。这样用拒绝法对正态分布的随机变量的模拟就无法实现了。如何解决这个问题呢?拒绝法是一种解决方法,其思想与离散型随机变量拒绝法类似,见离散型随机变量模拟-拒绝法。下面具体地给出拒绝法的思想、算法及其实现步骤。

为一个密度函数,假设我们有一种方法模拟
.令
为另一个概率密度函数,且满足:若
.令
是一个常数满足
.首先我们
,然后以
概率接受Y为X。

拒绝法步骤

  1. 生成
  2. 生成随机数
    ;
  3. ,则令
    . 否则,返回步骤1.

定理 (1)由拒绝法生成的

;

(2) 拒绝法迭代次数

服从均值为
的几何分布,即
.

由该定理可以看出,c越小,平均迭代的次数就越少。因此一般地取

.拒绝法的关键是要找到合适的
,使得模拟
的随机变量算法比较容易实现,同时尽可能地使得
尽量地小,这就要求
的尽可能与
相似。

例子1 用拒绝法模拟一个密度函数为

的随机变量。

解:因为

上不为0,因此我们可以取
.那么
. 对该函数进行求导,可以求得在
时,该
取最大值。因此
,于是

算法步骤:

  1. 生成随机数
    ;
  2. 生成随机数
    ,若
    ,则令
    结束。否则返回步骤1。

执行步骤1的平均次数为

生成一个

的R程序:
y<-runif(1)
     u<-runif(1)
     while (u>(256*y*(1-y)^3)/27){
          y<-runif(1)
          u<-runif(1)
          }
     x<-y
     x

运行结果:

> x

[1] 0.4946905

作业:

1.用拒绝变换法产生一个随机变量

,其中
的分布为
;

2.用拒绝变换法产生一个随机变量

,其中
的密度为
;

3.用拒绝变换法产生一个随机变量

,其中
的分布为
.

参考答案:

1.密度函数为

,那么
.因此

这样便可以得到模拟

的算法:
  1. 生成随机数
    ;
  2. 生成随机数
    ;
  3. ,则令
    ;否则返回到步骤1

R语言实现

   u<-runif(1)
     u1<-runif(1)
     while (u1>=2*u+1)/3){
          u<-runif(1)
          u1<-runif(1)
          }
     x<-u
     x

2. 令

,那么

那么

。根据拒绝法算法步骤得到模拟X的R语言实现为:
   y<-rexp(1,0.5)
     u<-runif(1)
     while (u>=y*exp(-y/2+1)/2){
          y<-rexp(1,0.5)
          u<-runif(1)
          }
     x<-y
     x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值