泊松过程的模拟

定义

泊松(Poisson)过程,是以法国数学家泊松(1781 - 1840)的名字命名的。泊松过程是随机过程的一种,是以事件的发生时间来定义的。泊松过程是一个计数过程,也是一个独立增量过程。

计数过程是在[0,t]内出现事件A的总数所组成的过程\{N(t), t>0\}。如果在不相交的时间间隔内出现事件A的次数是互相统计独立的则A事件的计数过程为独立增量过程

满足下列三个条件的 随机过程\{N(t), t>0\}被称为泊松过程。

  1. 随机过程N(t)是计数过程,且N(0)=0

  2. 随机过程N(t)是平稳增量过程,即不相交区间上增量相互独立,即对一切0\leqslant t_1 < t_2 < \cdots < t_nN(t_1)N(t_2)-N(t_1)\cdotsN(t_n)-N(t_{n-1})相互独立;

  3. 存在\lambda >0,使

\left\{\begin{array}{l} P\{N(t+\tau)-N(t) = 1\} = \lambda\tau +o(\tau)\\ P\{N(t+\tau)-N(t) \geqslant 2\} = o(\tau) \end{array}\right.

或者,存在\lambda >0,使

P\{N(t+\tau) - N(t) = k\} = e^{-\lambda\tau}\frac{(\lambda\tau)^k}{k!}, \qquad k = 0,1,\cdots

在泊松过程的定义中,第3条中的第一种情况是对泊松过程在很小时间区间内变化的直观解释,而第二种情况是对较大时间区间内事件发生次数的描述。

平稳过程保证了随着时间变动,泊松过程产生的随机变量是同分布的,而独立增量过程则保证了随着时间变动前后过程的独立性,所以平稳独立增量就就可以理解成连续情形下的独立同分布。在随机过程中,基于平稳独立增量过程的条件,可以通过类似在一个小区间(t,t+\tau]中发生事件的个数,能够推出整个随机过程的信息。

泊松过程的样本路径

X_n表示第n次和第n-1次事件发生的时间间隔,再记T_n表示第n次事件发生的时刻,则

  • 随机变量X_n是服从参数为\lambda的指数分布
  • 随机变量

T_n=\sum_{i=1}^nX_i

是服从参数为n\lambda\Gamma分布

利用上面的约定,可将泊松过程表示为

N(t)=\sup\{n: T_n\leqslant t\}

同样,也可以用均匀分布对泊松过程进行刻画。假设\xi_1, \xi_2, \cdots, \xi_n为区间[0,t]上独立同分布的均匀分布的随机变量。那么随机变量\xi_1, \xi_2, \cdots, \xi_n的顺序统计量的联合分布就是条件分布

\{T_1, T_1, \cdots, T_n| N(t) = n\}

利用指数分布随机数构成泊松过程

从上面的分析可以看出,利用服从指数分布的随机数的累积是可以形成泊松过程的一条样本曲线的。重复执行,即可获得泊松过程。

利用\mbox{exprnd}(\lambda,1,n)生成n个服从参数为成​​​​​​\lambda的指数分布的随机数,这些随机数不妨用X_i表示。X_ii次和第i-1次事件发生的时间间隔。 第n次事件发生的时刻可表示为

T_n=\sum_{i=1}^nX_i

因此,绘制(T_n,n)曲线即可获得泊松过程的一次实现。

Matlab实现代码

clear
n = 20;
lambda = 0.2;
xn = exprnd(lambda, 1, n);
tn = zeros(1,n);
tn(1) = xn(1);
for k = 2:n 
    tn(k) = tn(k-1)+xn(k);
end
tnFinal = [0, tn];
poission = 0:n;
figure, stairs(tnFinal, poission);
xlabel('时间/s');
ylabel('次数k');

 利用均匀分布随机数构成泊松过程

如前所述,假设\xi_1, \xi_2, \cdots, \xi_n为区间[0,t]上均匀分布的随机变量,且相互独立。那么随机变量\xi_1, \xi_2, \cdots, \xi_n的顺序统计量 T_n可用于表示第n次事件发生的时刻,相应的联合分布就是条件分布

\{T_1, T_1, \cdots, T_n| N(t) = n\}

换而言之,对于给定的时间区间[0,t],已经事件发生n次的前提下, 这n次事件发生时刻在[0,t]上服从均匀分布。

仿真步骤:

  1. 假设在时间区间[0,t]内,事件发生了 n次。当然这种情况发生的概率服从泊松分布。而当下我们需要考虑的不是这种情况发生的概率,而是需要考虑此时各次事件发生的时刻。
  2. 产生n个在 [0,t]内均匀分布的随机数,将这些随机数由小到大排序,构成事件发生时刻的随机变量序列T_1, T_2, \cdots, T_n

绘制(T_n,n)曲线即可获得泊松过程的一次实现。

Matlab实现代码

clear
n = 20;
lambda = 0.2;
t_end = 4
tn = t_end*rand(1,n);
tn = sort(tn, 2);
tnFinal = [0, tn];
poission = 0:n;
figure, stairs(tnFinal, poission);
xlabel('时间/s');
ylabel('次数k');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

带着地球去浪一浪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值