est.LG takes a 2-stage approach. First it adopts largest gap criterion on empirical degrees to estimate blocks of a given network under Stochastic Blockmodel framework. Then a consistent histogram estimator is utilized to estimate graphons based on estimated blocks in a given network.
est.LG(A, K =2)
Arguments
A: an (n×n) binary adjacency matrix.
K: the number of blocks provided by an user.
Returns
a named list containing
H: a (K×K) matrix of 3D histogram.
P: an (n×n) corresponding probability matrix.
B: a length-K list where each element is a vector of nodes/indices for each cluster.
Examples
## generate a graphon of type No.5 with 3 clustersW = gmodel.preset(3,id=10)## create a probability matrix for 20 nodesgraphW = gmodel.block(W,n=20)P = graphW$P
## draw 23 observations from a given probability matrixA = gmodel.P(P,rep=23,symmetric.out=TRUE)## run LG algorithm with a rough guess for K=2,3,4res2 = est.LG(A,K=2)res3 = est.LG(A,K=3)res4 = est.LG(A,K=4)## compare true probability matrix and estimated onesopar = par(no.readonly=TRUE)par(mfrow=c(2,2), pty="s")image(P, main="original P matrix")image(res2$P, main="LG with K=2")image(res3$P, main="LG with K=3")image(res4$P, main="LG with K=4")par(opar)