因此,我正致力于建立一个代表美国各地移动性的网络模型。我已经能够建立一个加权网络模型,其中zipcodes之间的旅行时间是加权边缘,但我不确定如何正确地将节点的概念作为一个群体引入到我的模型中。我的数据的代码和示例如下:
edgelist weight
zip1 zip2 5
zip2 zip1 10
zip1 zip3 4
zip3 zip1 6
zip2 zip3 8
zip3 zip2 1
(这是一个边缘列表,一种表示距离/邻接矩阵的简单方法) 矩阵格式如下所示:
zip1 zip2 zip3
zip1 0 5 4
zip2 10 0 8
zip3 6 1 0
dat <- read.csv("file.csv", ....)
m = as.matrix(dat)
net = network(m, matrix.type="adjacency", directed=FALSE, ignore.eval=FALSE,
names.eval="value")
plot(net, edge.lwd=net%e%'value'*.1)
最终目标是运行网络模拟,其中人口以边缘的强度/权重设置的速率流入和流出节点,但是我希望能够让节点保持被感染,即使有一个节点也是如此人口中的人被感染,并跟踪有多少感染/未感染。
即。人口A(500人)到人口B(700人)的强度A-> B为5,B-> A为10,因此在一个时间步长中,模型看起来像这样 时间步骤1:A(500),B(700),.... 时间步骤2:A(505),B(495),....
人口流入/流出假设只有未受感染的人口数量才能在节点之间迁移。
如果有人熟悉STELLA,使用几个节点进行建模非常简单,但很难对大量节点进行建模,因为其中包含与其他所有节点相连的输入和输出,边缘指数大,并且它变得混乱,难以建立。这就是我尝试学习R的原因,但是我很难理解和阅读文档。我到目前为止看过的软件包是Epimodel(利用statnet,ergm等)和igraph。
有关如何执行此操作的任何建议?看看文档,我想我需要使用vertex.attr,但我不确定,所以评论会有所帮助 - 在此先感谢!