在R的ergm包中,如果我想用homophily/clustering模拟图,应该输入什么模拟网络?
In the ergm package in R, if I want to simulate graphs with homophily/clustering, what simulated network should I input in?
在 ergm
和 latentnet
包中,它们允许我们输入网络并指定协变量。然后,我们可以添加同质性和聚类等效果(在 latentnet
包中)。好像这里有两个应用分支:
1) 已有 data/network,想看看它的表现如何,存在多少同质性,存在聚类。
2) 没有现有数据,并希望从头开始生成一个具有我们喜欢的足够同质性和聚类的网络。
上述包中的所有示例都使用现有数据集 samplike
,即 Sampson Monk Data。如果我只对生成具有给定数量的同质性和聚类的网络感兴趣,那么我应该输入的 输入网络 是什么?例如,来自代码 :
library(ergm)
library(latentnet)
test.net = as.network(matrix(0,100,100), directed = F) #100-node network
test.net%v%"gender" = rbinom(100, size = 1, prob = 0.5) #nodal attribute
gest <- ergmm(test.net ~ euclidean(d=3,G=10) + nodematch("gender")
g.sim <- simulate(gest)
plot(g.sim, vertex.col = as.numeric(test.net%v%"gender"), vertex.cex = 2)
如果我想用集群模拟网络,我应该从一个已经有 10 个集群的 test.net
对象开始(比如随机块模型)吗?或者我应该从 100 节点网络开始?
在 ergm
中,您将从无边的 100 个节点网络开始。例如:
library(ergm)
test.net <- network(40, directed = FALSE, density = 0)
test.net%v%"gender" = rbinom(40, size = 1, prob = 0.5)
g.sim <- ergm::simulate(test.net ~ nodematch("gender") + edges,
coef = c(2, -3)) #when using ergm::simulate with a formula as input,
#coefficients for ergm terms are required
plot(g.sim, vertex.col = as.numeric(test.net%v%"gender"))
查看 latentnet
的文档,它的功能似乎应该类似,但我也无法生成模拟网络。
在 ergm
和 latentnet
包中,它们允许我们输入网络并指定协变量。然后,我们可以添加同质性和聚类等效果(在 latentnet
包中)。好像这里有两个应用分支:
1) 已有 data/network,想看看它的表现如何,存在多少同质性,存在聚类。
2) 没有现有数据,并希望从头开始生成一个具有我们喜欢的足够同质性和聚类的网络。
上述包中的所有示例都使用现有数据集 samplike
,即 Sampson Monk Data。如果我只对生成具有给定数量的同质性和聚类的网络感兴趣,那么我应该输入的 输入网络 是什么?例如,来自代码
library(ergm)
library(latentnet)
test.net = as.network(matrix(0,100,100), directed = F) #100-node network
test.net%v%"gender" = rbinom(100, size = 1, prob = 0.5) #nodal attribute
gest <- ergmm(test.net ~ euclidean(d=3,G=10) + nodematch("gender")
g.sim <- simulate(gest)
plot(g.sim, vertex.col = as.numeric(test.net%v%"gender"), vertex.cex = 2)
如果我想用集群模拟网络,我应该从一个已经有 10 个集群的 test.net
对象开始(比如随机块模型)吗?或者我应该从 100 节点网络开始?
在 ergm
中,您将从无边的 100 个节点网络开始。例如:
library(ergm)
test.net <- network(40, directed = FALSE, density = 0)
test.net%v%"gender" = rbinom(40, size = 1, prob = 0.5)
g.sim <- ergm::simulate(test.net ~ nodematch("gender") + edges,
coef = c(2, -3)) #when using ergm::simulate with a formula as input,
#coefficients for ergm terms are required
plot(g.sim, vertex.col = as.numeric(test.net%v%"gender"))
查看 latentnet
的文档,它的功能似乎应该类似,但我也无法生成模拟网络。