library(MASS)
library(tibble)
library(dplyr)
N=100
ty=tz=y=x=z=id_y=id_z=list()
a=b=g=1
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=t.temp^.5
MZ=rep(0, n.temp)
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=a+g*z.temp+x.temp*b+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))
bd=0.1
omit=1
method=1
lda(data_res,data_cov,N,bd,omit,method)
Run the code above in your browser using DataLab