library(dplyr)
library(MASS)
library(tibble)
N=400
ty=tz=y=x=x1=z=id_y=id_z=list()
beta<-function(t){
0.3*(t-0.4)^2
}
gamma<-function(t){
sin(2*pi*t)
}
ny=rpois(N,5)+1
nz=rpois(N,5)+1
for(i in 1:N){
ty[[i]]=as.matrix(runif(ny[i]))
tz[[i]]=as.matrix(runif(nz[i]))
t.temp=rbind(tz[[i]],ty[[i]])
n.temp=nz[i]+ny[i]
corr=exp(-abs(rep(1,n.temp)%*%t(t.temp)-t.temp%*%t(rep(1,n.temp))))
corr.e=2^(-abs(rep(1,n.temp)%*%t(t.temp)-t.temp%*%t(rep(1,n.temp))))
MX=rep(0, n.temp)
MZ= 2*(t.temp-0.5)^2
x.temp=mvrnorm(1,MX,corr)
z.temp=mvrnorm(1,MZ, corr)
z[[i]]=as.matrix(z.temp[1:nz[i]])
x[[i]]=as.matrix(x.temp[-(1:nz[i])])
id_z[[i]]=rep(i,nz[i])
id_y[[i]]=rep(i,ny[i])
y.temp=gamma(t.temp)*z.temp+beta(t.temp)*x.temp+as.matrix(mvrnorm(1,rep(0,n.temp),corr.e))
y[[i]]=as.matrix(y.temp[-(1:nz[i])])
}
data_cov=tibble(id_z=unlist(id_z),tz=unlist(tz),z=matrix(unlist(z),length(unlist(z))))
data_res=tibble(id_y=unlist(id_y),ty=unlist(ty),x=matrix( unlist(x),length(unlist(x))), y=unlist(y))
ldatv(data_res,data_cov,time=0.3,N,bd=c(N^(-0.5),N^(-0.5)),method=1,scb=0)
Run the code above in your browser using DataLab