# number of nodes
p=20
# number of edge in general network
m1=100
# the difference between the number of edges in individual networks and general network
m2=0
# number of clusters
m3=4
# number of subjects
n=20
# correlation between cluster
rho=0.8
set.seed(5)
library(lglasso)
cc=matrix(rho,ncol = m3,nrow = m3)
diag(cc)=1
dd=Simulate(type="general",n=n,p=p,m1=m1,m2=m2,m3=m3,cc=cc)
ddata=dd$data
## clustered data with no correlation structure
freq=table(ddata[,1])
group=c()
for (i in 1:length(freq)) {
group=c(group,1:freq[i])
}
group=ifelse(group==1,1,2)
lambda1=exp(seq(-5,-4,length=3))
lambda2=lambda1
lambda=expand.grid(lambda1,lambda2)
bb=CVlglasso(type="general",data=ddata,lambda = lambda1,K=5, cores=5)
a=plot(bb)
set.seed(5)
dd=Simulate(type="longihomo",n=n,p=p,m1=m1,tau=c(2,1))
ddata=dd$data
freq=table(ddata[,1])
group=c()
for (i in 1:length(freq)) {
group=c(group,1:freq[i])
}
group=ifelse(group==1,1,2)
lambda1=exp(seq(-5,-4,length=3))
lambda2=lambda1
lambda=expand.grid(lambda1,lambda2)
set.seed(5)
dd=Simulate(type="longiheter",n=n,p=p,m1=m1,alpha=2)
ddata=dd$data
freq=table(ddata[,1])
group=c()
for (i in 1:length(freq)) {
group=c(group,1:freq[i])
}
group=ifelse(group==1,1,2)
lambda1=exp(seq(-3,-2,length=3))
lambda2=exp(seq(-3,-2,length=3))
lambda=expand.grid(lambda1,lambda2)
[1] Zhou J, Gui J, Viles WD, Chen H, Li S, Madan JC, Coker MO, Hoen AG. Identifying stationary microbial interaction networks based on irregularly spaced longitudinal 16S rRNA gene sequencing data. Front Microbiomes. 2024;3:1366948. doi: 10.3389/frmbi.2024.1366948. Epub 2024 Jun 2. PMID: 40687607; PMCID: PMC12276884.
[2] Matt Galloway (2025), CVglasso: Lasso Penalized Precision Matrix Estimation, version 1.0