楼主: wuxin19950510
5028 5

[有偿编程] 用R做网络分析,模型ERGMs求助 [推广有奖]

  • 2关注
  • 6粉丝

本科生

43%

还不是VIP/贵宾

-

威望
0
论坛币
7290 个
通用积分
20.0646
学术水平
17 点
热心指数
17 点
信用等级
16 点
经验
1921 点
帖子
70
精华
0
在线时间
59 小时
注册时间
2017-1-25
最后登录
2019-12-23

100论坛币
我想使用R做一个ERGM的网络分析,我的被解释变量是26*26的矩阵,解释变量为26*9的矩阵,我将对应空白数据填为0,发现跑不出来结果,各位大神有没有什么方法帮帮忙?感激不尽!
  1. #被解释网络取非对角线上较小值为0
  2. BondyieldSpillover_test<-BondyieldSpillover[[88]]
  3. for (i in 1:26){
  4.   m<-which(abs(BondyieldSpillover[[88]][,i])<0.05)#取绝对值小于0.05的值为0
  5.   BondyieldSpillover_test[m,i]<-0
  6. }
  7. #被解释变量网络
  8. NET1<-as.network(BondyieldSpillover_test,directed = T,matrix.type = "a",ignore.eval = T,names.eval = "nominations")
  9. #解释变量网络
  10. NET2<-as.network(CapitalAllocation_Allocation[[88]],directed = T,matrix.type = "a",ignore.eval = T,names.eval = "nominations")
  11. #ergms回归
  12. summary(ergm(NET1~edges+edgecov(NET2)))
复制代码
MPLE结果显示为:
  1. Monte Carlo MLE Results:
  2.              Estimate Std. Error MCMC % z value Pr(>|z|)   
  3. edges               5.1818     0.5789      0   8.951   <1e-04 ***
  4. edgecov.NET2      Inf     0.0000      0     Inf   <1e-04 ***
复制代码

即参数为infinite。。。求教求教




关键词:网络分析 GMS Spillover Yields lover
沙发
tiesuoqiao 发表于 2019-2-12 00:59:22 |只看作者 |坛友微信交流群
我记得最普通的ERGM,被解释的网络只能是0-1
你的解释变量难道不应该也是26x26?

inf 估计是解释矩阵被认为为0


我曾经做过的

# adj_iobin  0-1 邻接方阵

io <- graph_from_adjacency_matrix(adj_iobin, mode = 'undirected', weighted = TRUE, add.colnames = 'label', diag = FALSE)

a_network <- network(adj_iobin, directed = FALSE)  #被解释网络


net_full <- asNetwork(make_full_graph(length(V(io)), directed = FALSE, loops = FALSE))
#解释网络  全连接

set.edge.value(net_full, "dist_io", as.matrix(distMatrix_io))
# distMatrix_io 是方阵,node--node距离,赋予到名为“dist_io"的属性

DSmod0 <- ergm(a_network ~ edges +  edgecov(net_full, "dist_io"), control = control.ergm(seed = 40))

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 40 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 40  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

藤椅
tiesuoqiao 发表于 2019-2-20 03:21:35 |只看作者 |坛友微信交流群
我记得最普通的ERGM,被解释的网络只能是0-1
你的解释变量难道不应该也是26x26?

inf 估计是解释矩阵被认为为0


我曾经做过的

# adj_iobin  0-1 邻接方阵

io <- graph_from_adjacency_matrix(adj_iobin, mode = 'undirected', weighted = TRUE, add.colnames = 'label', diag = FALSE)

a_network <- network(adj_iobin, directed = FALSE)  #被解释网络


net_full <- asNetwork(make_full_graph(length(V(io)), directed = FALSE, loops = FALSE))
#解释网络  全连接

set.edge.value(net_full, "dist_io", as.matrix(distMatrix_io))
# distMatrix_io 是方阵,node--node距离,赋予到名为“dist_io"的属性

DSmod0 <- ergm(a_network ~ edges +  edgecov(net_full, "dist_io"), control = control.ergm(seed = 40))

使用道具

板凳
网豆瓣 发表于 2019-6-1 09:54:17 |只看作者 |坛友微信交流群
应该把数据处理成26*26的处理成网络数据,然后26*9的作为节点数据加进网络属性,然后根据26*9的数据也可以计算边的属性,之后进行ergm就很简单了
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 20 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

报纸
是佳航啊 发表于 2022-11-22 14:51:17 |只看作者 |坛友微信交流群
看到一篇文章提到的是计数ergm,那被解释变量是不是就不要求必须是0或1

使用道具

地板
福田678 发表于 2023-9-25 14:56:54 |只看作者 |坛友微信交流群
tiesuoqiao 发表于 2019-2-12 00:59
我记得最普通的ERGM,被解释的网络只能是0-1
你的解释变量难道不应该也是26x26?
你好,net_full <- asNetwork(make_full_graph(length(V(io)), directed = FALSE, loops = FALSE)) 提示没有asNetwork这个函数,请问是怎么回事

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 14:58