# load data of a synthetic graph with 50 individuals and 3 clusters
n <- 20
Q <- 3
Time <- generated_Q3_n20$data$Time
data <- generated_Q3_n20$data
z <- generated_Q3_n20$z
step <- .001
x0 <- seq(0,Time,by=step)
intens <- generated_Q3_n20$intens
# VEM-algo kernel
sol.kernel <- mainVEM(data,n,Q,directed=FALSE,method='kernel', d_part=0,
n_perturb=0)[[1]]
# compute smooth intensity estimators
sol.kernel.intensities <- kernelIntensities(data,sol.kernel$tau,Q,n,directed=FALSE)
# eliminate label switching
intensities.kernel <- sortIntensities(sol.kernel.intensities,z,sol.kernel$tau,
directed=FALSE)
# VEM-algo hist
# compute data matrix with precision d_max=3 (ie nb of parts K=2^{d_max}=8).
K <- 2^3
Nijk <- statistics(data,n,K,directed=FALSE)
sol.hist <- mainVEM(list(Nijk=Nijk,Time=Time),n,Q,directed=FALSE, method='hist',
d_part=0,n_perturb=0,n_random=0)[[1]]
log.intensities.hist <- sortIntensities(sol.hist$logintensities.ql,z,sol.hist$tau,
directed=FALSE)
# plot estimators
par(mfrow=c(2,3))
ind.ql <- 0
for (q in 1:Q){
for (l in q:Q){
ind.ql <- ind.ql + 1
true.val <- intens[[ind.ql]]$intens(x0)
values <- c(intensities.kernel[ind.ql,],exp(log.intensities.hist[ind.ql,]),true.val)
plot(x0,true.val,type='l',xlab=paste0("(q,l)=(",q,",",l,")"),ylab='',
ylim=c(0,max(values)+.1))
lines(seq(0,1,by=1/K),c(exp(log.intensities.hist[ind.ql,]),
exp(log.intensities.hist[ind.ql,K])),type='s',col=2,lty=2)
lines(seq(0,1,by=.001),intensities.kernel[ind.ql,],col=4,lty=3)
}
}
Run the code above in your browser using DataLab