发布具有块对角线约束的运行值指数随机图模型ergm

问题描述

我正在尝试在加权网络 (network_ex) 上运行指数随机图模型 (ergm)。该网络显示了四个不同群体中个体之间的相互作用。无法发生组之间的交互,因此模型中需要包含块对角约束。但是,当我包含 blockdiagonal 约束时,ergm 函数(以其他方式运行)返回错误(见下文),并且我的 R 会话要么无限期运行,要么直接中止。

有没有办法基于加权块对角矩阵运行 ergm?

# load necessary packages
library(ergm)
library(ergm.count)

# create a toy example network to illustrate the issue presented  
VEC=c(0,5,2,3,4,1,7,6,0)
mat_ex=matrix(VEC,25,25)

nb=1:25
ID=rep("ID_",25)
names=paste0(ID,nb)
rownames(mat_ex)=names
colnames(mat_ex)=names

SeAg=c("F_Adult","F_Adult","M_Adult","M_Sub-Adult","M_Adult")
Group=c(1,4)
network_ex=as.network(x = mat_ex,directed = TRUE,loops = FALSE,matrix.type = "adjacency",ignore.eval=FALSE,names.eval='weight')
set.vertex.attribute(network_ex,"Sex_Age",as.character(SeAg))
set.vertex.attribute(network_ex,"Group",as.character(Group))

# run the ergm function with blockdiagonal constraint
ergm_ex <- ergm(network_ex~ 
                  sum
                +nodematch("Sex_Age",diff=TRUE,levels=c(1,2),form="sum"),response = 'weight',constraints = ~blockdiag("Group"),estimate = 'MLE',reference = ~Poisson,control = control.ergm(MCMC.interval = 1000,MCMLE.maxit = 200,init.method = 'CD',MCMC.samplesize = 1000,MCMC.prop.weights="random",MCMC.burnin=100,seed=12345)
)

通过 CD-MCMLE 开始对比散度估计: 最多 60 次的迭代 1:

根据 VEC 值,我另外得到:

MH 提议函数的初始网络配置是一种不能提议切换的网络配置

解决方法

这似乎是一个错误。我已经在最新的开发版本中修复了它。这些可以通过转到 https://github.com/statnet/ergmhttps://github.com/statnet/ergm.count 并使用 install_github() 或下载自述文件中的二进制文件来获得。另请注意,blockdiag() 约束已暂时移至 https://github.com/statnet/tergm .