Nothing
context("test btergm estimation")
test_that("chemnet example can be replicated", {
skip_on_cran()
# preparatory steps
library("network")
library("sna")
library("ergm")
seed <- 12345
set.seed(seed)
data("chemnet")
# create confirmed network relation
sci <- scito * t(scifrom) # equation 1 in the AJPS paper
prefsim <- dist(intpos, method = "euclidean") # equation 2
prefsim <- max(prefsim) - prefsim # equation 3
prefsim <- as.matrix(prefsim)
committee <- committee %*% t(committee) # equation 4
diag(committee) <- 0 # the diagonal has no meaning
types <- types[, 1] # convert to vector
# create network objects and store attributes
nw.pol <- network(pol) # political/stratgic information exchange
set.vertex.attribute(nw.pol, "orgtype", types)
set.vertex.attribute(nw.pol, "betweenness",
betweenness(nw.pol)) # centrality
nw.sci <- network::network(sci) # technical/scientific information exchange
set.vertex.attribute(nw.sci, "orgtype", types)
set.vertex.attribute(nw.sci, "betweenness",
betweenness(nw.sci)) # centrality
# ERGM: model 1 in the AJPS paper; only preference similarity
suppressMessages({
model1 <- ergm(nw.pol ~ edges + edgecov(prefsim),
control = control.ergm(seed = seed))
})
expect_equal(class(model1), "ergm")
expect_length(coef(model1), 2)
# ERGM: model 2 in the AJPS paper; complete model
suppressMessages({
model2 <- ergm(nw.pol ~
edges +
edgecov(prefsim) +
mutual +
nodemix("orgtype", base = -7) +
nodeifactor("orgtype", base = -1) +
nodeofactor("orgtype", base = -5) +
edgecov(committee) +
edgecov(nw.sci) +
edgecov(infrep) +
gwesp(0.1, fixed = TRUE) +
gwdsp(0.1, fixed = TRUE),
control = control.ergm(seed = seed)
)
})
expect_equal(class(model2), "ergm")
expect_length(coef(model2), 11)
# ERGM: model 3 in the AJPS paper; only preference similarity
suppressMessages({
model3 <- ergm(nw.sci ~ edges + edgecov(prefsim),
control = control.ergm(seed = seed))
})
expect_equal(class(model3), "ergm")
expect_length(coef(model3), 2)
# ERGM: model 4 in the AJPS paper; complete model
suppressMessages({
model4 <- ergm(nw.sci ~
edges +
edgecov(prefsim) +
mutual +
nodemix("orgtype", base = -7) +
nodeifactor("orgtype", base = -1) +
nodeofactor("orgtype", base = -5) +
edgecov(committee) +
edgecov(nw.pol) +
edgecov(infrep) +
gwesp(0.1, fixed = TRUE) +
gwdsp(0.1, fixed = TRUE),
control = control.ergm(seed = seed)
)
})
expect_equal(class(model4), "ergm")
expect_length(coef(model4), 11)
# goodness of fit using the btergm package
gof4 <- btergm::gof(model4, verbose = FALSE)
expect_equal(length(gof4), 7)
plot(gof4)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.