Я новичок в сетевом анализе. Я хочу вычислить нормализованные меры центральности (степень, промежуточность и собственный вектор) с помощью R. Я создал следующий список редактирования, в котором как ID1, так и ID2 являются инвесторами. Если заполнены оба идентификатора ID1 и ID2, инвесторы совместно инвестируют, в противном случае инвестор инвестирует один (т. Е. Изолированный узел):
edgelist <- structure(list(ID1 = c("Cottonwood Capital Partners LLC", "Sequoia Capital Operations LLC",
"Seraphim Capital (General Partner) LLP", "Seraphim Capital (General Partner) LLP",
"Providence Equity Partners LLC", "Turn8", "Matrix Partners LP",
"Zeeuws Investeringsfonds BV", "Venionaire Capital GmbH", "CincyTech",
"First Round Capital", "Matrix Partners LP", "Mohr Davidow Ventures",
"Esprit Capital Partners LLP", "Yaletown Venture Partners", "Wellington Partners",
"Charles River Ventures LLC", "MB VENTURE PARTNERS L L C", "Edison Partners",
"Ballast Point Venture Partners LLC", "Arcview Group", "Foundry Group LLC",
"Sosventures LLC", "Vantagepoint Management Inc", "Bain Capital Venture Partners LLC",
"NAV VC", "Bluerun Ventures LP", "Draper Fisher Jurvetson International Inc",
"Claremont Creek Ventures LP", "Meritage Funds"), ID2 = c("Pangaea Ventures Ltd",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "RPM Ventures Management LLC",
NA, "Kennet Partners Ltd", NA, NA, "Gotham Ventures LLC", NA,
NA, NA, "Syncom Management Co Inc", "Lightspeed Venture Partners China Co Ltd",
NA, "First Round Capital", NA)), row.names = c(NA, -30L), class = c("tbl_df",
"tbl", "data.frame"))
Для вычисления нормализованных центральностей степеней я использую следующий код:
library(igraph)
net <- graph.data.frame(edgelist, directed = F) # create undirected graph
"Warning message:
In graph.data.frame(edgelist, directed = F) :
In `d' `NA' elements were replaced with string "NA""
degree_norm <- degree(net, mode = "all", normalized = T) # retreive normalized degree measure
betw_norm <- betweenness(net2, directed=F, normalized = T) # retreive normalized betw measure
ev <- eigen_centrality(net2, directed = F, scale=F, weights = NULL) # retreive normalized ev
Как видите, появляется Warning message
: NA рассматривается как отдельный инвестор (получается NA строка). Причина, по которой я сохраняю изолированных инвесторов, заключается в том, что нормализация требует деления необработанной меры степени (той, которая вычисляется с подключенными узлами / инвесторами) на возможное количество инвесторов, в которых любой инвестор мог бы инвестировать (т.е. все возможные инвесторы, считая тех, кто инвестирует в одиночку).
Есть какие-нибудь предложения, как обойти такую проблему? Пробовал работать с матрицами смежности, но тоже не разобрался ...
Спасибо огромное!