require(CorReg)
#dataset generation
base=mixture_generator(n=15,p=10,ratio=0.4,tp1=1,tp2=1,tp3=1,positive=0.5,
R2Y=0.8,R2=0.9,scale=TRUE,max_compl=3,lambda=1)
X_appr=base$X_appr #learning sample
Y_appr=base$Y_appr #response variable for the learning sample
Y_test=base$Y_test #responsee variable for the validation sample
X_test=base$X_test #validation sample
TrueZ=base$Z#True generative structure (binary adjacency matrix)
#density estimation for the MCMC (with Gaussian Mixtures)
density=density_estimation(X=X_appr,nbclustmax=10,detailed=TRUE)
Bic_null_vect=density$BIC_vect# vector of the BIC found (1 value per covariate)
#MCMC to find the structure
res=structureFinder(X=X_appr,verbose=0,reject=0,Maxiter=900,plot=TRUE,
nbini=20,candidates=-1,Bic_null_vect=Bic_null_vect,star=TRUE,p1max=15,clean=TRUE)
hatZ=res$Z_opt #found structure (adjacency matrix)
hatBic=res$bic_opt #associated BIC
#looking inside the walk
par(mar=c(5,4,4,5)+.1)
plot(res$bic_step,type="l",col="red",ylab="BIC",
sub="blue: complexity, red: BIC", main="Evolution of BIC and complexity during the walk")
par(new=TRUE)
plot(res$complexity_step,type="l",col="blue",xaxt="n",yaxt="n",xlab="",ylab="")
axis(4)
mtext("Complexity",side=4,line=3)
#legend("topleft",col=c("red","blue"),lty=1,legend=c("BIC","Complexity"))
#BIC comparison between true and found structure
bicopt_vect=BicZ(X=X_appr,Z=hatZ,Bic_null_vect=Bic_null_vect)
bicopt_vrai=BicZ(X=X_appr,Z=TrueZ,Bic_null_vect=Bic_null_vect)
sum(bicopt_vect);sum(bicopt_vrai)
#Structure comparison
compZ=compare_struct(trueZ=TrueZ,Zalgo=hatZ)#qualitative comparison
#interpretation of found and true structure ordered by increasing R2
readZ(Z=hatZ,crit="R2",X=X_appr,output="all",order=1)# <NA>line : name of subregressed covariate
readZ(Z=TrueZ,crit="R2",X=X_appr,output="all",order=1)# <NA>line : name of subregressed covariate
Run the code above in your browser using DataLab