ergMargins 错误:不合格参数和结构零/一

ergMargins error: non-conformable argument and structural zeros/ones

提问人:Amelie 提问时间:9/28/2023 最后编辑:MichałAmelie 更新时间:10/9/2023 访问量:30

问:

我是一个相当ergm的新手,所以如果我的问题的答案对你来说是显而易见的,请原谅我。 我使用 ergms 对我的网络进行建模,并尝试通过使用 ergms 的 AME 来促进可解释性(函数:ergm.AME())。在这里,R 返回两条错误消息:

  1. t(x) %*% cbcoef 中的错误:不合格参数 以及一条附加警告消息:
  2. 在 edge.prob2(model) 中:有结构零或一。对于这些二元组,预测的概率无效,必须分别手动替换为 0 或 1。

我试图在堆栈溢出上找到有关这两个主题的问题,但找不到任何问题。你知道问题出在哪里吗?使用 ergm 计算模型时,我没有任何问题。

对于这些模型,代码有效:

model1 <- ergm(
  network ~ edges + mutual + gwidegree(decay=1, fixed=TRUE) +
    gwodegree(decay=1, fixed=TRUE),
  estimate = "MPLE"
)
model2 <- ergm(
  network ~ edges + mutual + gwidegree(decay=1, fixed=TRUE) +
    gwodegree(decay=1, fixed=TRUE) + gwesp(decay=1, fixed=TRUE),
  estimate = "MPLE"
)

model3 <- ergm.AME(model1, "edges")
model4 <- ergm.AME(model2, "edges")

但是,当使用更复杂的模型时,会出现错误消息:

model5 <- ergm(
  network ~ edges + mutual + gwidegree(decay=1, fixed=TRUE) +
    gwodegree(decay=1, fixed=TRUE) + gwesp(decay=1, fixed=TRUE) +
    edgecov(network1)  + edgecov(network2) + edgecov(network3) +
    edgecov(network4)     + nodeifactor("chronic") +
    nodeofactor("chronic")  +nodeifactor("nas") +
    nodeofactor("nas") + nodeofactor("sup") + 
    nodematch("chronic") + nodematch("nas") + 
    nodematch("gender") + nodefactor("gender"),
  estimate = "MPLE"
)
R 边际 网络分析 Statnet ERGM

评论


答:

0赞 Michał 10/9/2023 #1

你能用输出来扩展问题吗?这可能有几个原因,但我怀疑你的模型有一些系数估计值为 或 。这阻碍了计算 AME 所必需的二元并列概率的计算。一般来说,数据中可能没有足够的“可变性”来估计如此复杂的模型。summary(model5)Inf-Inf

因此,您的解决方案将是:

  1. 调查 Inf 或 -Inf 处是否存在系数估计值。
  2. 通过以下方式重新指定模型
    • 通过删除有问题的术语来简化它,或者
    • 我怀疑节点属性值的某些组合可能是空的。如果是这样,请查看这些属性的分布情况,并可能考虑加入一些类别。

评论

0赞 Amelie 10/10/2023
谢谢你的评论!事实上,我有一个系数估计值为 -Inf。由于我是跨多个网络建模的,因此我不能排除网络项(Inf 仅在此特定网络中!由于 ergm 仍在为我提供估计值,因此我希望在计算 AME 时也能得到同样的估计值。或者这是不可能的?
0赞 Michał 10/11/2023
@Amelie 您是将相同的规格分别适用于多个网络,还是一次性将池化模型适用于所有网络?从问题中的代码来看,我认为是前者而不是后者,对吗?对于在 Inf 或 -Inf 处具有任何系数的模型,将不可能使用 ergMargins 计算 AME。
0赞 Amelie 10/18/2023
我确实将相同的规格分别适合多个网络。好的,谢谢你的回答,这很有帮助!