在用R语言做TERGM的时候,怎么把时变二元协变量放进模型里?
我有三个年份的因变量矩阵,和三个年份的经济距离矩阵、技术距离矩阵等。目前只看到了GEO地理矩阵这种非时变的矩阵怎么放进去,不太清楚时变矩阵怎么放进去。
目前尝试将时变矩阵做列表,
Eco_distance <- list(Eco_distance1,Eco_distance2,Eco_distance3)
Inst_distance <- list(Inst_distance1,Inst_distance2,Inst_distance3)
Tec_distance <- list(Tec_distance1,Tec_distance2,Tec_distance3)
导入到边的属性上
for (i in 1:length(link)) {
link[[i]] <- network(link[[i]])
link[[i]] <- set.edge.value(link[[i]], "Eco", Eco_distance[[i]])
link[[i]] <- set.edge.value(link[[i]], "Inst", Inst_distance[[i]])
link[[i]] <- set.edge.value(link[[i]], "Tec", Tec_distance[[i]])
}
最终模型这样写的
mode3 <- mtergm(link ~ edges + mutual +
nodematch("PGDP") + nodematch("PEOPLE") + nodematch("GOV") + nodematch("SEC") + nodematch("OPEN") + nodematch("PINNO") +
edgecov("Eco") + edgecov("Inst") + edgecov("Tec") + edgecov(Geo_distance) +
delrecip,
control = control.ergm(MCMC.samplesize = 1000, MCMC.interval = 1000))
summary(mode3)
但是报错
Error in ergm_Init_abort()
:
! In term ‘edgecov’ in package ‘ergm’: There is no network attribute named ‘Eco’ or it is not a matrix.
Run rlang::last_trace()
to see where the error occurred.