Получение взвешенных случайных графов со степенью сохранения рандомизации в игре - PullRequest
1 голос
/ 04 февраля 2020

У меня есть взвешенная сеть, в которой узлы сильно взаимосвязаны (250 узлов, где 90% узлов имеют степень = 249). Соединения взвешиваются с помощью нормализованного индекса, который идет от 0 до 1, где 1 означает сильное соединение, а значения, близкие к 0, указывают на слабые соединения. Распределение веса сети искажено вправо и подчиняется степенному закону, причем большинство ребер имеют близость, близкую к 0.

Я использую рандомизирующие тесты с сохранением степени, чтобы сравнить характеристики уровня сети с характеристиками уровня сети. распределение одинаковых характеристик извлечено из рандомизированных графиков. Я реализовал рандомизацию с сохранением степени в следующей форме:

#Obtain the degree distribution to be preserved in the randomised networks
gdegree <- degree(g)

#Generate 1000 random networks with the same degree distribution as g
g.random <- vector('list', 1000)
g.random.degree <- array(dim = c(1000,vcount(g)))

for(i in 1:1000){
  g.random[[i]] <- sample_degseq(gdegree)
  g.random.degree[i,] <- degree(g.random[[i]])
}

Однако рандомизированные сети, полученные из приведенного выше кода, являются невзвешенными.

Существует ли способ получения взвешенных случайных сетей используя степень сохранения рандомизации? И во-вторых, есть ли статистический тест, который я могу выполнить, чтобы выбрать «значимые» соединения (те, которые наблюдаются последовательно как в эмпирической сети, так и в рандомизированных сетях)?

...