ERGM模型预测概率的标准误计算与预测结果解读校验
预测结果解读与标准误计算方案
对预测结果的解读验证
你手动计算得到的、两节点财富差为10时的联结概率0.182511,解读是完全准确的。
原因在于:ERGM默认采用logit连接函数,输出的系数对应边存在的对数几率;你当前构建的模型仅包含edges(边的截距项)和absdiff("wealth")(财富差的效应项)两个预测项,不存在其他协变量或内生网络结构项,因此代入公式计算得到的概率,就是固定两节点财富差值为10时,单条网络边独立存在的条件发生概率,没有额外的效应干扰。
预测概率对应的标准误计算方法
预测概率是模型系数经过plogis转换得到的非线性函数,无法直接沿用原系数的标准误推导结果,在当前的statnet框架下有两类成熟的可复现计算方法:
- Delta近似法
核心逻辑是利用模型系数的渐近协方差矩阵,先计算线性预测值(即对数几率尺度下的预测值)的方差,再通过梯度变换推导概率尺度下的标准误。相比直接对概率值做加减运算,这种方法会在对数几率尺度上计算置信区间上下限,再转换回概率尺度,避免出现概率超出[0,1]合理范围的问题。
可直接复用的示例代码:# 对应固定财富差为10的设计向量 x_vec <- c(edges = 1, absdiff.wealth = 10) # 计算对数几率尺度的预测值 eta <- as.numeric(t(x_vec) %*% coef(gest)) # 计算对数几率预测值的方差 var_eta <- as.numeric(t(x_vec) %*% vcov(gest) %*% x_vec) # 转换为概率值 p_pred <- plogis(eta) # 推导概率对应的标准误 se_delta <- sqrt(var_eta) * p_pred * (1 - p_pred) # 计算95%置信区间 ci_delta <- plogis(eta + c(-1.96, 1.96)*sqrt(var_eta)) - 参数Bootstrap法
当样本量较小、概率值接近0或1时,Delta近似法可能存在偏差,此时可以基于模型估计得到的多元正态参数分布反复抽样,通过大量模拟值的分布计算标准误和置信区间,结果更稳健。
对应的示例代码:library(MASS) # 从参数的渐近正态分布中重复抽样10000次 coef_samples <- mvrnorm(n = 10000, mu = coef(gest), Sigma = vcov(gest)) # 每次抽样计算固定财富差为10时的边概率 p_sim <- plogis(coef_samples[, "edges"] + coef_samples[, "absdiff.wealth"]*10) # 计算概率的标准误 se_boot <- sd(p_sim) # 计算95%置信区间 ci_boot <- quantile(p_sim, c(0.025, 0.975))
注意:你当前构建的模型未包含任何内生网络依赖项(如传递性、节点度分布效应等),上述方法计算的不确定性仅来自外生协变量的参数估计误差。如果模型加入内生网络结构项,预测边概率的不确定性还会包含网络整体结构的随机波动成分,需要结合ERGM的全网络模拟框架重复抽样,才能完整量化预测的不确定性。
内容的提问来源于stack exchange,提问作者Christophe Lesschaeve
相关产品推荐
相关产品推荐

