library(aricode)
rmse <- function(theta, theta_star) { sqrt(sum((theta - theta_star)^2)/sum(theta_star^2)) }
error <- function(beta1, beta2, sort = FALSE) {
if (sort)
err <- rmse(sort(beta1), sort(beta2))
else
err <- rmse(beta1, beta2)
err
}
.logistic <- missSBM:::.logistic
.logit <- missSBM:::.logit
# default settings
if (!exists("N_nocov")) N_nocov <- 200
if (!exists("N_cov")) N_cov <- 40
if (!exists("Q")) Q <- 3
if (!exists("M")) M <- 5
## SBM SAMPLER GENERAL PARAMETERS
covarList_directed <- replicate(M, matrix(rnorm(N_cov * N_cov ,mean = 0, sd = 1), N_cov, N_cov), simplify = FALSE)
covarList_undirected <- lapply(covarList_directed, function(covar) covar + t(covar))
covarParam <- rnorm(M, 1, 2) * base::sample(c(-1,1), M, replace = TRUE)
## the special case of covariates defined on "nodes"
covarList_node <- replicate(M, rnorm(N_cov ,mean = 0, sd = 1), simplify = FALSE)
covarArray <- missSBM:::getCovarArray(simplify2array(covarList_node), l1_similarity)
covarList_node_similarity <- lapply(1:M, function(m) covarArray[,,m])
## BERNOULLI WITHOUT COVARIATES -------------------------------------------------------------
## UNDIRECTED, NO COVARIATES
sampler_undirected_nocov <- sbm::SimpleSBM$new('bernoulli', N_nocov, FALSE, rep(1/Q, Q), list(mean = diag(.45, Q) + .05 ))
## DIRECTED, NO COVARIATES
sampler_directed_nocov <- sbm::SimpleSBM$new('bernoulli', N_nocov, TRUE, rep(1/Q, Q), list(mean = diag(.45, Q) + matrix(seq(.3, .05, length.out = Q), Q, Q)))
## BERNOULLI WITH COVARIATES -------------------------------------------------------------
## UNDIRECTED, COVARIATES
sampler_undirected_cov <- sbm::SimpleSBM$new('bernoulli', N_cov, FALSE, rep(1/Q, Q), list(mean = diag(.45, Q) + .05 ), covarParam = covarParam, covarList = covarList_undirected)
sampler_undirected_cov_node <- sbm::SimpleSBM$new('bernoulli', N_cov, FALSE, rep(1/Q, Q), list(mean = diag(.45, Q) + .05 ), covarParam = covarParam, covarList = covarList_node_similarity)
## DIRECTED, COVARIATES
sampler_directed_cov <- sbm::SimpleSBM$new('bernoulli', N_cov, TRUE, rep(1/Q, Q), list(mean = diag(.45, Q) + matrix(seq(.3, .05, length.out = Q), Q, Q)), covarParam = covarParam, covarList = covarList_directed)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.