如何解决如何使用稀疏算法为R中的自激过程计算lambdat?
这是我的自减稀疏算法代码。我已经完成了标准泊松过程和非均匀泊松过程的算法。
我在计算T_k并将其存储在固定的时间步dt以绘制lambda(t)时遇到麻烦。我知道我必须接受dt并在每个地方计算lambda,无论何时接受和不接受。我不确定如何实现。
#Clear the memory
rm(list = ls())
#Function for lambda
lambda_0 = 10
lambda_bar = lambda_0
beta = 10
alpha = 100
#Initializing variables
t = 0
T_ = 1
dt <- seq(0,1,length.out = 100)
#T_k <- vector('numeric')
T_k = c()
T_k = c(T_k,t)
#Make a list
list_n <- c()
list_n <- c(list_n,0)
lambda_list <- c(lambda_0)
n = 0
#Thinning algorithm
while (t <= T_) {
#Compute lambda_bar
sum_T <- 0
for (i in c(1:length(T_k))) {
sum_T <- sum_T + exp(-alpha*(t-T_k[i]))
}
lambda_bar <- lambda_0 + beta * sum_T
X <- rexp(1,rate = lambda_bar)
t = t + X
if (t <= T){
U = runif(1,min = 0,max = 1)
#Compute lambda_t
sum_T <- 0
for (i in c(1:length(T_k))) {
sum_T <- sum_T + exp(-alpha*(t-T_k[i]))
}
lambda_t <- lambda_0 + beta * sum_T
if (U <= lambda_t/lambda_bar) {
#List with lambda_t
lambda_list <- c(lambda_list,lambda_t+beta)
n = n + 1
list_n <-c(list_n,n)
t_n <- t
#List with t's
T_k <- c(T_k,t_n)
}
}
}
plot(T_k,list_n,main="Point process",xlab='Time',ylab='Jumps',type = 's')
plot(T_k,lambda_list,main="Intensity process",ylab='λ(t)',type = 'l')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。