ECV.block: selecting block models by ECV

View source: R/RCode.R

ECV.blockR Documentation

selecting block models by ECV

Description

Model selection by ECV for SBM and DCSBM. It can be used to select between the two models or given on model (either SBM or DCSBM) and select K.

Usage

ECV.block(A, max.K, cv = NULL, B = 3, holdout.p = 0.1, tau = 0, dc.est = 2, kappa = NULL)

Arguments

A

adjacency matrix

max.K

largest possible K for number of communities

cv

cross validation fold. The default value is NULL. We recommend to use the argument B instead, doing indpendent sampling.

B

number of replications

holdout.p

testing set proportion

tau

constant for numerical stability only. Not useful for current version.

dc.est

estimation method for DCSBM. By defaulty (dc.est=2), the maximum likelihood is used. If dc.est=1, the method used by Chen and Lei (2016) is used, which is less stable according to our observation.

kappa

constant for numerical stability only. Not useful for current version.

Details

The current version is based on a simple matrix completion procedure, as described in the paper. The performance can be improved by better matrix completion method that will be implemented in next version. Moreover, the current implementation is better in computational time but less efficient in memory. Another memory efficient implementation will be added in next version.

Value

impute.err

average validaiton imputation error

l2

average validation L_2 loss under SBM

dev

average validation binomial deviance loss under SBM

auc

average validation AUC

dc.l2

average validation L_2 loss under DCSBM

dc.dev

average validation binomial deviance loss under DCSBM

sse

average validation SSE

l2.model

selected model by L_2 loss

dev.model

selected model by binomial deviance loss

l2.mat, dc.l2.mat,...

cross-validation loss matrix for B replications

Author(s)

Tianxi Li, Elizaveta Levina, Ji Zhu
Maintainer: Tianxi Li tianxili@virginia.edu

References

T. Li, E. Levina, and J. Zhu. Network cross-validation by edge sampling. Biometrika, 107(2), pp.257-276, 2020.

See Also

NCV.select

Examples


dt <- BlockModel.Gen(30,300,K=3,beta=0.2,rho=0.9,simple=FALSE,power=TRUE)


A <- dt$A

ecv <- ECV.block(A,6,B=3)

ecv$l2.model
ecv$dev.model


which.min(ecv$l2)
which.min(ecv$dev)

which.min(ecv$dc.l2)
which.min(ecv$dc.dev)

which.max(ecv$auc)
which.min(ecv$sse)


randnet documentation built on May 31, 2023, 6:44 p.m.