context("test-consistency-on-fully-observed-network")
library(igraph)
test_that("SimpleSBM_fit_missSBM and missSBMfit are coherent", {
data("war")
## adjacency matrix without missing values
A <- war$belligerent %>% igraph::as_adj()
## coherence of partlyObservedNetwork object
partlyObservedNet <- missSBM:::partlyObservedNetwork$new(A)
expect_equal(ncol(A), partlyObservedNet$nbNodes)
expect_equal(ncol(A) * (ncol(A) - 1)/2, partlyObservedNet$nbDyads)
expect_equal(rep(TRUE, ncol(A)), partlyObservedNet$observedNodes)
## initial clustering
Q <- 3
cl0 <- partlyObservedNet$clustering(Q)[[1]]
control <- list(threshold = 1e-4, maxIter = 200, fixPointIter = 5, trace = 1)
## using SBM_fit class
my_SBM <- missSBM:::SimpleSBM_fit_noCov$new(partlyObservedNet, clusterInit = cl0)
my_SBM$doVEM(control$threshold, control$maxIter, control$fixPointIter, control$trace)
my_SBM$ICL
## using missSBM_fit class
my_missSBM <- missSBM:::missSBM_fit$new(partlyObservedNet, netSampling = "node", clusterInit = cl0)
my_missSBM$doVEM(control)
my_missSBM$fittedSBM$ICL
## using missSBM_collection class
my_collection <- missSBM_collection$new(
partlyObservedNet = partlyObservedNet,
sampling = "node",
clusterInit = list(cl0),
control = list(trace = TRUE, useCov = TRUE)
)
my_collection$estimate(control)
expect_lt(my_SBM$ICL, my_collection$ICL) ## different due an addition df for sampling
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.