Estimate graphons based on matrix completion scheme
Estimate graphons based on matrix completion scheme
est.completion adopts a matrix completion scheme, which is common in missing data or matrix reconstruction studies. When given a multiple of, or a single observation, we consider non-existent edges as missing entries and apply the completion scheme. See OptSpace for a more detailed introduction.
Case 2.: a list containing multiple of (n×n) binary adjacency matrices.
rank: an estimated rank condition for the matrix; NA for automatic guessing of a rank, or a positive integer for a user-supplied rank assumption.
tolerance: a tolerance level for singular value thresholding from OptSpace method.
maxiter: the number of maximum iterations for OptSpace method.
progress: a logical value; FALSE for not showing intermediate flags during the process, TRUE otherwise.
adjust: a logical value; TRUE to ignore a guessed rank and set it as 2 upon numerical errors, FALSE to stop the code.
Returns
an (n×n) corresponding probability matrix.
Examples
## generate a graphon of type No.5 with 3 clustersW = gmodel.preset(3,id=5)## create a probability matrix for 100 nodesgraphW = gmodel.block(W,n=100)P = graphW$P
## draw 10 observations from a given probability matrixA = gmodel.P(P,rep=10)## apply the methodres_r3 = est.completion(A,rank=3)# use rank-3 approximationres_r9 = est.completion(A,rank=9)# use rank-9 approximationres_rN = est.completion(A,adjust=FALSE)# stop the code if guess works poorly## visualizeopar = par(no.readonly=TRUE)par(mfrow=c(1,3), pty="s")image(res_r3, main="rank 3")image(res_r9, main="rank 9")image(res_rN, main="rank is guessed")par(opar)