Я пытаюсь вычислить тест перестановки индекса E-I, чтобы оценить гомофильность сети и измерить значимость индекса E-I. Однако, используя функцию permute () для создания нового графа, переставляя идентификаторы вершин, сеть будет переставлять, но при выполнении индекса E-I это всегда дает мне один и тот же результат 0,25. Так что-то не так с функцией перестановки?
actors <- data.frame(name=c("Alice", "Bob", "Cecil", "David",
"Esmeralda", "Ben", "Fritz", "Jon", "Anna",
"Julia"),
age=c(48,33,45,34,21, 12,33,44,66,99),
gender=c("F","M","F","M","F", "F","M","F","M","F"))
relations <- data.frame(from=c("Bob", "Cecil", "Cecil", "David",
"David", "Esmeralda", "Cecil", "David",
"Esmeralda", "Jon", "Anna",
"Julia", "Bob", "Cecil", "Cecil", "David"),
to=c("Alice", "Bob", "David", "Esmeralda", "Cecil", "David", "Alice", "Alice", "Bob", "Alice", "Fritz", "Jon", "Anna", "Alice", "Bob", "Cecil"),
same.dept=c(FALSE,FALSE,TRUE,FALSE,FALSE,TRUE, TRUE,FALSE,FALSE,TRUE,FALSE,FALSE, FALSE,TRUE,FALSE,FALSE),
friendship=c(4,5,5,2,1,1,1,3,5,7,9,1, 7,8,2,4), advice=c(4,5,5,4,2,3,1,5,7,8,2,4, 7,8,2,4))
g <- graph.data.frame(relations, directed=TRUE, vertices=actors)
V(g)$name <- as.character(vertex_attr(g, "gender"))
edges <- get.data.frame(g)
external <- length(which(edges$from != edges$to))
internal <- length(which(edges$from == edges$to))
ei_index = (external - internal) / nrow(edges)
new.graph <- permute(g, sample(vcount(g)))