компоненты ограничений igraph (размер c, плотность c, иерархия c)

#r #igraph

Вопрос:

Я хотел бы вычислить компоненты ограничения Берта, обсуждаемые здесь Бертом.

Команда ограничения Igraph вычисляет оценку ограничения Берта:

 rm(list=ls())

library(igraph)

g <- graph.formula( "A"--------"B":"E":"F":"EGO",
                    "B"--------"A":"D":"EGO",
                    "C"--------"EGO",
                    "D"--------"B":"EGO",
                    "E"--------"A":"EGO",
                    "F"--------"A":"EGO",
                    "EGO"-"A":"B":"C":"D":"E":"F")

coords <- layout_nicely(g)

V(g)$label <- V(g)$name
g$layout <- coords
plot(g)

constraint(g)
 

введите описание изображения здесь
Ограничение возвращает только общую оценку ограничения.

с

и

является силой (= весом) связи между двумя вершинами i и j.

является прямой связью между вершинами i и j (доля соединений от i до j всех соединений i).

является суммой косвенных связей между вершинами i и j (соединений с другими вершинами q, которые оба связаны с i и j).

Я хочу работать с отдельными компонентами c-размера, c-плотности и c-иерархии.

Берт изменяет уравнение ограничения следующим образом:

Первый член-размер c.

The second term is c-density.

The third term is c-hierarchy.

I want to compute the three components of constraint for each vertex of the network.

I could think of two solutions, both of which are beyond my capabilities.
Maybe there is a way to harness these values directly from igraph’s constraint command.
Alternatively, one would have to compute these values manually.

For the example above, I have computed these values by hand using Excel:

node degrees constraint c-size c-density c-hierarchy
A 4 0.60 0.25 0.23 0.12
B 3 0.64 0.33 0.24 0.07
C 1 1.00 1.00 0.00 0.00
D 2 0.78 0.50 0.25 0.03
E 2 0.73 0.50 0.21 0.02
F 2 0.73 0.50 0.21 0.02
эго 6 0.40 0.17 0.16 0.07
сила прямое влияние j косвенное влияние j комбинированное влияние j
От Для
A B 1 0.25 0.25 0.17 0.04 0.09
A E 1 0.25 0.25 0.17 0.04 0.09
A F 1 0.25 0.25 0.17 0.04 0.09
A эго 1 0.25 0.25 1.33 0.33 0.34
B A 1 0.33 0.33 0.17 0.06 0.15
B D 1 0.33 0.33 0.17 0.06 0.15
B эго 1 0.33 0.33 0.75 0.25 0.34
C эго 1 1.00 1.00 0.00 0.00 1.00
D B 1 0.50 0.50 0.17 0.08 0.34
D эго 1 0.50 0.50 0.33 0.17 0.44
E A 1 0.50 0.50 0.17 0.08 0.34
E эго 1 0.50 0.50 0.25 0.13 0.39
F A 1 0.50 0.50 0.17 0.08 0.34
F эго 1 0.50 0.50 0.25 0.13 0.39
эго A 1 0.17 0.17 1.33 0.22 0.15
эго B 1 0.17 0.17 0.75 0.13 0.09
эго C 1 0.17 0.17 0.00 0.00 0.03
эго D 1 0.17 0.17 0.33 0.06 0.05
эго E 1 0.17 0.17 0.25 0.04 0.04
эго F 1 0.17 0.17 0.25 0.04 0.04

Комментарии:

1. Я предполагаю , что вам , возможно, придется следовать формулам и написать конкретную функцию для вычисления c-size , c-density и c-hierarchy , поскольку, похоже, ни одна существующая igraph функция не может дать вам немедленных результатов.

2. Я мог бы сделать это вручную в Excel, но для автоматизации этого мне нужно было бы получить доступ к списку ребер, как во второй таблице, или получить доступ к матрице смежности. Я надеялся, что найдется способ заглянуть под колпак команды ограничения igraph и адаптировать код.

3. Может быть, вы можете свериться с C исходным кодом constraint . Однако, если вы хотите напрямую использовать код R, я не думаю, что это возможно.