全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
828 3
2024-12-06
请问各位老师,我看有的文献中对有向网络进行二值化处理时是根据每行的均值进行对比,那无向网络怎样确认阈值大小啊,我按整体取均值比较时,网络出现了很多孤立节点,所以感觉这种方法不太行,还有没有别的方法啊?(想知道这种阈值是可以自己设置的吗?)感谢各位大佬帮忙。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2024-12-18 10:54:04
我也想问问这个问题
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2025-1-24 00:47:55
1. 自定义阈值(根据研究背景和需求)
你可以根据研究问题或实际数据的特点,自定义一个阈值。例如:
- 使用网络密度:目标是让网络的密度(连接数占可能最大连接数的比例)达到一个合理范围,比如10%-30%。
- 设置百分位数:选择边权重的某个百分位数作为阈值。例如,选取边权重的前25%作为有效连接。
  
   实现步骤:
   - 排序边权重。
   - 确定边权重分布的某个百分位数作为阈值。
   - 将大于该阈值的边设置为1,小于的设置为0。

2. 局部阈值法
如果整体均值导致孤立节点过多,可以考虑基于局部特性设置阈值,例如:
- 节点均值或中位数:以每个节点的连接强度均值或中位数作为阈值,这样可以更灵活地保留每个节点的重要连接。
- k-邻近法:确保每个节点至少保留前k个最强的连接。这种方法可以避免孤立节点的出现,同时保留重要的网络结构。

3. 数据驱动的动态阈值
如果你希望根据网络结构自动调整阈值,可以尝试以下方法:
- 最大连通性:选择一个阈值,使网络尽可能保持连通(尽量减少孤立节点),这需要通过尝试不同阈值来找到最佳平衡点。
- 模块性优化:选择一个阈值,使网络的模块性(modularity)达到最大值,从而更好地反映网络的社区结构。

4. 使用统计方法
可以使用统计方法确定一个数据驱动的阈值:
- 标准差调整:使用整体均值加减一定倍数的标准差作为阈值。例如,`阈值 = 均值 + 1.5 × 标准差`。
- 显著性测试:基于边权重的显著性进行二值化,只保留显著的边。

5. 根据实际需求调整
如果你的网络分析目标允许,也可以:
- 尝试不同阈值,观察对结果的影响,选择对研究问题最合适的阈值。
- 对比不同二值化策略的结果,确保分析的鲁棒性。

具体在 Stata 中实现
1. 基于百分位数:
   使用 `summarize` 命令计算边权重的分位数,比如前25%或50%:
   stata
   summarize edge_weights, detail
  
   提取 `r(p25)` 或其他分位数,并将其用作阈值。

2. 动态调整阈值:
   尝试不同的阈值并观察连通性,具体可以用 Stata 的循环来调整阈值:
   stata
   gen binary_network = cond(edge_weights > threshold, 1, 0)
   

3. 自定义节点阈值:
   如果需要基于节点的局部均值或中位数,可以先计算每个节点的均值或中位数:
   stata
   egen node_mean = mean(edge_weights), by(node)
   gen binary_network = cond(edge_weights > node_mean, 1, 0)
   

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群