Рандомизация сетей

Анализ сетей в R

James Curley

Associate Professor, University of Texas at Austin

Случайные графы

erdos.renyi.game(n = gorder(g), p.or.m = edge_density(g), type = "gnp")
Анализ сетей в R

Случайные графы и тесты на рандомизацию

  1. Сгенерировать 1000 случайных графов на основе исходной сети — например, с тем же числом вершин и примерно той же плотностью.

  2. Вычислить среднюю длину пути в исходной сети.

  3. Вычислить среднюю длину пути в каждой из 1000 случайных сетей.

  4. Определить, сколько случайных сетей имеют среднюю длину пути больше или меньше, чем в исходной сети.

Анализ сетей в R

Генерация 1000 случайных графов:

gl <- vector('list',1000)

for(i in 1:1000){
    gl[[i]] <- erdos.renyi.game(
                    n = gorder(g), 
                    p.or.m = edge_density(g), 
                    type = "gnp"
                     ) 
}

Вычисление средней длины пути для 1000 случайных графов:

gl.apls <- unlist(
  lapply(gl, mean_distance, directed = FALSE) 
)
Анализ сетей в R

Сравнение с исходной сетью

hist(gl.apls, breaks = 20)

abline(
  v = mean_distance(
    g, directed=FALSE
    ),
      col = "red", 
      lty = 3, 
      lwd = 2
)

Анализ сетей в R

Давайте потренируемся!

Анализ сетей в R

Preparing Video For Download...