#r #modularity #network-analysis
#r #модульность #анализ сети
Вопрос:
Я пытаюсь выполнить анализ обнаружения сообщества для своей диссертации, используя взвешенные веса ребер (т. Е. Полихорические корреляции). Я использую Spinglass
кластерный анализ для обнаружения сообществ. По какой-то причине мои значения модульности (Q) не попадают в ожидаемый диапазон от 0 до 1 (на основе литературы, которую я прочитал по этому вопросу). Может кто-нибудь посоветовать мне, почему это может происходить и как я могу это исправить? Большое вам спасибо!
#TESTING FOR COMMUNITIES
#create matrix table
TeachAggDatagraph <- getWmat(TeachAggDataplot)
#convert matrix table to qgraph graph
qgTeachA <- qgraph(TeachAggDatagraph)
#convert to igraph
graphTAD<- as.igraph(qgTeachA, attributes = TRUE)
#Community detection for teacher aggression data
cluster_spinglass(graphTAD)
Результат, который я получаю:
IGRAPH clustering spinglass, groups: 2, mod: -7.5
groups:
$"1"
[1] 1 2 3
$"2"
[1] 4 5 6
Как вы можете видеть, мое значение модульности равно -7,5
Комментарии:
1. У меня та же проблема…
Ответ №1:
Как объясняется в (неопубликованной) книге Статистический сетевой анализ с помощью igraph — Гарвардский университет, автором которой является автор igraph
Кластеризация с нулевой модульностью имеет ровно столько ребер внутри кластеров, сколько мы ожидаем в графе, сгенерированном с помощью нулевой модели, положительные оценки модульности представляют хорошие кластеризации, а отрицательные оценки представляют плохие, где в кластерах меньше ребер, чем мы ожидаем в случайно сгенерированном графе.
Или в Newman, M. (2010). Сети: Введение. 1-е изд. Издательство Оксфордского университета
Эта величина Q называется модульностью [239,250] и является мерой степени, в которой подобное подключено к подобному в сети. Оно строго меньше 1, принимает положительные значения, если между вершинами одного и того же типа больше ребер, чем мы могли бы ожидать случайно, и отрицательные, если их меньше.