library(ergm) library(StartNetwork) library(parallel) nc <- parallel::detectCores() cl <- parallel::makeCluster(nc) clusterSetRNGStream(cl, 2) n = 4 nsim = 1000 nsim_new = 10000 degseq_extract <- function(x){ sort.int(as.numeric(igraph::degree(StartNetwork::ergm_to_igraph(x)))) } coef_up = 0.1 coef_low = -0.1
ergm_test0 <- ergm::simulate_formula(network::network(n, directed = FALSE) ~ gwdegree(2, fixed = TRUE), coef = coef_up, nsim = nsim) ergm_test <- summary(ergm_test0 ~ gwdegree(2, fixed = TRUE)) #ergm_test <- as.numeric(ergm_test0) input = lapply(ergm_test0[1:nc], degseq_extract) sn_test0 <- parallel::parSapply(cl, input, ergm_simulator, sum_stat = StartNetwork::gwdegree, loops = nsim_new, theta = coef_up, alpha = 2, simplify = TRUE, type = "Exact") # sn_test <- ergm_simulator(sn_init, Sgwdegree , 5000, 3, alpha = 2) sn_test <- as.numeric(sn_test0)[-c(1:length(nsim_new/10))] len_x <- length(sn_test) hist(ergm_test, breaks = 0:20, freq = FALSE) hist(sn_test[seq(1, len_x, by = 10)], breaks = 0:20, col = "red", add = TRUE, freq = FALSE) # plot(density(ergm_test)) # lines(density(sn_test[seq(1, len_x, by = 10)]), col = "red")
ergm_test <- ergm::simulate_formula(network::network(n, directed = FALSE) ~ gwdegree(2, fixed = TRUE), coef = coef_low, nsim = nsim) ergm_test <- summary(ergm_test ~ gwdegree(2, fixed = TRUE)) x = mech_net_gwdegree_n(1, n, 1) input = lapply(ergm_test0[1:nc], degseq_extract) sn_test <- parallel::parLapply(cl, input, ergm_simulator, sum_stat = StartNetwork::gwdegree, loops = nsim_new, theta = coef_up, alpha = 2, simplify = TRUE, type = "Exact") # sn_test <- ergm_simulator(sn_init, Sgwdegree , 5000, 3, alpha = 2) sn_test <- unlist(sn_test) plot(density(ergm_test)) lines(density(sn_test[-c(1:I(nsim_new/10))]), col = "red")
parallel::stopCluster(cl)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.