以下问题告诉我们从ρ(到达间隔时间)和τ(到达时间)逐步生成泊松过程。
讲座中提出的理论成果之一给出了以下模拟泊松过程的直接方法:
• 令τ 0 = 0。
• 生成iid 指数随机变量ρ1, ρ2, 。. ..
• 令τ n = ρ 1 + 。. . + ρ n对于 n = 1, 2, . . . .
• 对于每个 k = 0, 1, 。. ., 令 N t = k 对于 τ k ≤ t < τ k+1。
- 使用此方法,在区间 [0, 20] 上生成一个泊松过程 (N t ) t的实现,其中 λ = 0.5。
- 生成 λ = 0.5 的泊松过程 (N t ) t的 10000 个实现,并使用您的结果来估计 E(N t ) 和 Var(N t )。将估计值与理论值进行比较。
我尝试的解决方案:
首先,我使用R 中的函数生成了ρ的值。rexp()
rhos <-function(lambda, max1)
{
vec <- vector()
for (i in 1:max1)
{
vec[i] <- rexp(0.5)
}
return (vec)
}
然后,我通过对ρ s进行累进求和来创建τ s。
taos <- function(lambda, max)
{
rho_vec <- rhos(lambda, max)
#print(rho_vec)
vec <- vector()
vec[1] <- 0
sum <- 0
for(i in 2:max)
{
sum <- sum + rho_vec[i]
vec[i] <- sum
}
return (vec)
}
以下函数用于在给定 k 值时找到N t =k的值。比如说,它是7等等。
Ntk <- function(lambda, max, k)
{
tao_vec <- taos(lambda, max)
val <- max(tao_vec[tao_vec < k])
}
y <- taos(0.5, 20)
x <- seq(0, 20-1, by=1)
plot(x,y, type="s")
输出:
如您所见,泊松过程的图是空白的,而不是楼梯。
如果我更改rexp
为exp
,我会得到以下输出:
..这是一个楼梯功能,但所有步骤都是平等的。
为什么我的源代码没有产生预期的输出?