Моя попытка:
library(igraph)
set.seed(41)
n<-10
A <- sample.int (2, n*n, TRUE)-1L; dim(A) <- c(n,n);
m <- sum(A)
g <- graph_from_adjacency_matrix(A)
k_in <- degree(g, v = V(g), mode = "in", loops = TRUE, normalized = FALSE)#; k_in
k_out <- degree(g, v = V(g), mode = "out", loops = TRUE, normalized = FALSE)#; k_out
p <- (k_in %*% t(k_out) / (2*m))/(k_in %*% t(k_out) / (2*m) + k_in %*% t(k_out) / (2*m))
round(p, 3)
Все значения матрицы вероятностей p
равны 0,5.
Я думаю, что ошибка в знаменателе p, потому что матрица A не является симметрией.
Вопрос. Как правильно указать знаменатель?
Edit. После ответа Стефана Лорана.
Я думаю, что мы должны иметь другое значение: k_j_out, k_i_in, k_i_out, k_j_in.
Наконец, мне нужно получить весовую матрицу, Вт.
I <- matrix(0, n, n); diag(I) <- 1
W <- A %*% (I - P) - t(A) %*% (I - P)
И я думаю, что эта матрица должна быть симметричной.