Как и в Ваш предыдущий вопрос , heatmap
должен работать для этого.Я думаю, что причина того, что вы недовольны результатом, заключается в том, как вы генерируете график.Тепловая карта покажет это.
Используя матрицу А, вы можете создать тепловую карту с:
heatmap(A, Rowv=NA, Colv=NA, col=terrain.colors(16),
labRow=FALSE, labCol=FALSE, revC=TRUE)
Изображение 1000 x 1000 слишком большоечтобы увидеть больше деталей, я увеличу верхний левый угол - первые 10 групп по 10.
heatmap(A[1:100, 1:100], Rowv=NA, Colv=NA, col=terrain.colors(16),
labRow=FALSE, labCol=FALSE, revC=TRUE)
Это начинает показывать, чтопроисходит, но это не то, что я думаю, вы хотели.Но это основано на способе, которым вы сделали матрицу предпочтений.
pref.matrix <- matrix(rep(0.07, 100*100), ncol = 100)
diag(pref.matrix) <- rep(0.01, 100)
Вы начинаете со всеми записями, равными 0,07 - т.е. довольно низкая вероятность соединения между любыми группами.Затем вы изменяете диагональ и устанавливаете ее на 0,01 - немного ниже.Вы запрашиваете, что есть небольшая вероятность того, что любые две разные группы будут подключены, и очень низкий шанс того, что узел будет подключен к узлам в одной группе.Я подозреваю, что это не то, что вы хотели.Если вы берете точку в какой-то группе, вероятность быть связанной со всеми точками за пределами ее группы равна - это не должно создавать никаких кластеров.Но вероятность быть связанным внутри группы точки ниже.Там тоже нет кластеров.Я думаю, что вы хотели, чтобы точка была подключена к точке в своей группе на с большей вероятностью , чем к другой группе.
Так что, возможно, вам нужно что-то вроде этого:
pref.matrix <- matrix(rep(0.04, 100*100), ncol = 100)
diag(pref.matrix) <- rep(0.4, 100)
g2 <- sample_sbm(1000, pref.matrix = pref.matrix, block.sizes = rep(10, 100))
A2 <- as.matrix(as_adj(g2))
Это значительно повышает вероятность того, что точка подключится к своей группе, а не к другой группе.Вы можете видеть это в увеличенной тепловой карте.
heatmap(A2[1:100, 1:100], Rowv=NA, Colv=NA, col=terrain.colors(16),
labRow=FALSE, labCol=FALSE, revC=TRUE)
Теперь есть группы, формирующие диагональ вниз.