我正在努力模拟网络,特别是使用 ergm 包。似乎为了模拟网络,我们必须首先对某个初始矩阵运行回归,然后在“模拟”函数中使用该输出。下面是一个例子:
fit <- ergm(flobusiness~edges+degree(1))
flomodel.03.sim <- simulate(flomodel.03,nsim=10)
但在这个例子中,“flowbusiness”是一些观察到的数据。如果我没有,但我知道我想要使用的参数怎么办?那么,如果我想模拟一个具有 30 个节点、三角形参数=a、边参数=b 等的网络,该怎么办?有办法做到这一点吗?预先感谢。
您需要 2 件:
net0
)。如果您从复杂模型中采样,它会用作链的初始点。coef
参数(参见?ergm::simulate.formula
和?ergm::simulate_formula
)提供参数值。例如:
net0 <- network.initialize(100, directed = FALSE) # Empty graph with 100 nodes
net <- simulate(
net0 ~ edges + triangles + degree(0),
coef = c(-4, - 0.3, -Inf) # Rather sparse, avoid triangles, no isolates
)
plot(net)