我试图在有向网络中建立联系的模型。在上下文中,我分析的关系是人们提名其他人为有才华的人。我正在执行指数随机图模型来询问什么可以预测提名。
除此之外,我想测试成为朋友(我也有网络数据)是否会影响他们被提名为聪明人的几率。
因此,我使用edgecov(graph)作为变量,这给了我们以下代码:
model <- ergm(
graph ~ edges + mutual + gwidegree(decay = 0.5, fixed = TRUE) +
gwodegree(decay = 0.5, fixed = TRUE) + nodematch("class") +
nodeifactor("gender") + nodeifactor("race") + nodeifactor("edu") +
nodeofactor("gender") + nodeofactor("race") + nodeofactor("edu") +
edgecov(friends)
)
字符串
我的问题是,我得到thuis错误消息:
> Error in if (any(low.drop.theta)) message(paste("Observed statistic(s)", :
> missing value where TRUE/FALSE needed
型
我很有信心,这是因为我的友谊网络有缺失的边(我运行了一个测试,如果我通过将缺失的边重新编码为0来更改友谊图,则完全相同的代码确实有效-但该选项不会令人满意)。
有什么想法是怎么回事/如何解决这个问题?
1条答案
按热度按时间xriantvc1#
一般来说,在对其他事物建模之前,应该明确地处理丢失的数据。接下来将所有设置为0,或者一些更聪明的估算(参见https://doi.org/10.1016/j.socnet.2015.12.003),替代方案可以是用单独的项来对它们的影响建模,使得友谊网络对“有才华的”提名的影响将用两个参数来表示。您需要两个
dyadcov
:1.矩阵,友谊为1,其他为0(包括缺失)
1.矩阵中1表示缺失的友谊二对,0表示其他(包括友谊)
参数的解释与回归中有三个类别的自变量-友谊存在,缺席和缺失-与“缺席”作为参考类别没有什么不同。