среда, 13 января 2016 г.

Как развиваются социальные сети: пример в RSiena

Зачем изучать динамику социальных сетей?
В последние годы тема эволюции сети стала одной из основополагающих в сетевом анализе. Основное достоинство динамических исследований в том, что они позволяют понять структуру причинно-следственных связей в сети. Приведем простой пример: двое друзей-подростков любят фаст фуд. В сетевом анализе склонность людей со схожими характеристиками или поведением образовывать между собой связи называется гомофилией. Можно сказать, что между этими подростками наблюдается гомофилия: они оба любят эту еду.
Однако статическая перспектива не позволяет ответить на вопрос о том, каким образом гомофилия формируется. Рассмотрим, как могло так случиться, что наши любители фаст фуда подружились:
1) Каждый из них любил гамбургеры, затем они познакомились и подружились на основе общей любви к этой еде,
2) Оба подростка изначально дружили, и один из них все время ходил в Макдональдс и ел гамбургеры, а его друг постепенно перенял эту привычку.
        В первом случае речь идет о социальной селекции – выборе друга на основании схожих интересов. Во втором случае – о социальном влиянии – изменении поведения под влиянием поведения друга. Ответить на вопрос о том, что стало первопричиной гомофилии (то есть какой из вариантов развития событий был более реалистичным), можно, рассмотрев динамику социальной сети.

Иллюстрация социального влияния и социальной селекции

       Изучение динамики соцсетей позволяет не только разделять селекцию и влияние, но и выявлять ключевые структурные механизмы формирования сетей (например, правда ли, что в этой сети люди формируют связи с друзьями друг друга?), изучать взаимосвязь структурных и не структурных характеристик (правда ли, что популярные пользователи онлайн сетей — это знаменитости, или, наоборот, знаменитости становятся популярными в любой онлайн сети?).
Для изучения эволюции социальной сети все чаще используют стохастическое акторно-ориентированное моделирование (САОМ). Этот метод реализован в пакете RSiena. Предпосылки САОМ достаточно просты – каждый человек понимает свою позицию в социальной системе и меняет свои социальные связи (и поведение) для того, чтобы улучшить эту позицию с течением времени. Например, для улучшения своей позиции в рабочем коллективе сотрудник может пытаться создать хорошие отношения с руководством и коллегами.
Подробнее о методе можно прочитать в обзорной статье (а еще здесь и здесь). По этой ссылке можно ознакомиться с эмпирическими исследованиями, выполненными с использованием САОМ. О том, как работать с пакетом RSiena, подробно написано в мануале.
Если Вы планируете использовать САОМ в своих исследованиях, то стоит подписаться на рассылку пользователей RSiena. Там Вы не только сможете узнать много полезного о САОМ, но и всегда будете в курсе новинок – главный разработчик RSiena Том Снайдерс регулярно сообщает новости о развитии модели и новшествах пакета, размещает информацию о конференциях, воркшопах и вакансиях в сфере социальных сетей.

Немного магии
Разобраться в САОМ лучше всего на примере. Рассмотрим, каким образом происходила эволюция социальной сети помощи по выполнению домашних заданий в Хогвартсе. Для тех, кто не понимает о чем речь, Хогвартс — это магическая школа, в которой учился Гарри Поттер и его друзья из книги Джоан Роулинг. Джоэль Боссаэрт и Надин Маэдерт в своей работе собрали информацию о помощи при подготовке домашних заданий из первых 6 книг о Гарри Поттере. Так как в седьмой книге главные герои не стали посещать школу, информации об обучении в ней почти не было.

Источник изображения
 Рассмотрим на примере, как была собрана информация о сетях помощи:
"Гарри, Рон и Гермиона сидели у окна — Гермиона проверяла их домашние задания по заклинаниям. Она никогда не давала им списывать, — «Как же вы тогда чему-нибудь научитесь?» — но зато согласилась проверять их домашние работы, и таким образом они все равно узнавали от нее правильные ответы" (Джоан Роулинг, Гарри Поттер и философский камень, гл. 11)

С сетевой точки зрения этот фрагмент можно интерпретировать следующим образом: 1) Гермиона помогает Гарри; 2) Гермиона помогает Рону. Все данные по помощи в «Гарри Поттере» размещены в открытом доступе по ссылке.
В этом посте мы хотим понять, как изменяются сети помощи от второй к четвертой книге. Мы не рассматриваем другие книги, так как это потребовало бы использования процедур по восполнению пропущенных данных (composition change). Со всеми процедурами можно ознакомиться в мануале.
Итак, проводим анализ эволюции социальной сети. Для этого необходимо загрузить пакет RSiena (версия 1.1-289) отсюда. Более ранние версии использовать не рекомендуется. Potter_01
In [ ]:
# Для работы нам понадобится пакет RSiena
library(RSiena)
library(parallel)
In [ ]:
# Скачаем данные с сайта: http://www.stats.ox.ac.uk/~snijders/siena/
# Сами данные на вкладке Data Sets,
# Cкачаем архив в нашу рабочую директорию и распакуем

# Загружаем данные из 2 и 4 книги
book2 <- as.matrix(read.table("hpbook2.txt"))
book4 <- as.matrix(read.table("hpbook4.txt"))
In [ ]:
# Посмотрим на заголовки наших данных
head(book2)
# Они у нас представлены в формате матрицы, где 1 - есть связь, 0 -нет связи
Out[ ]:
V1V2V3V4V5V6V7V8V9V10V55V56V57V58V59V60V61V62V63V64
00000000000000000000
01100000000100000000
01100000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
In [ ]:
# Прикрепляем атрибуты участников сети
# Это год обучения, пол и факультет
hp.attributes <- as.matrix(read.table("hpattributes.txt", header=TRUE))
head(hp.attributes)
Out[ ]:
idschoolyeargenderhouse
11989 1 4
21989 2 1
31989 2 1
41991 1 3
51991 1 4
61989 1 4
In [ ]:
# Соединяем все социальные сети в один объект
# Каждая сеть состоит из 64 узлов и их всего две
support <- sienaDependent(array(c(book2,book4),  dim=c(64, 64, 2)))

# Даем названия интересующим нас атрибутам акторов
schoolyear <- coCovar(hp.attributes[,2])
gender     <- coCovar(hp.attributes[,3])
house      <- coCovar(hp.attributes[,4])
In [ ]:
# Формируем модель, которую назовем Хогвартс
# Она состоит из двух сетей помощи и наших атрибутов
Hogwarts  <- sienaDataCreate(support, schoolyear, gender, house)
Hogwarts
Hogwarts_effects <- getEffects(Hogwarts)
In [ ]:
# Спецификация модели: добавляем эффекты
# Добавляем два эффекта для транзитивности («друг моего друга – мой друг»)
Hogwarts_effects <- includeEffects(Hogwarts_effects, transTies)
In [ ]:
# Добавляем эффект популярности и активности
# (с течением времени популярные акторы становятся еще популярнее,
# а активные - еще активнее)
# Также добавляем эффект социальной селекции по полу
# (ученики склонны завязывать связи с учениками их пол)
Hogwarts_effects <- includeEffects(Hogwarts_effects,
                                   egoX,
                                   altX,
                                   simX,
                                   interaction1="gender")
In [ ]:
# Добавляем социальную селекцию по курсу
# (ученики одного года обучения склонны помогать друг другу)
Hogwarts_effects <- includeEffects(Hogwarts_effects,
                                   simX,
                                   interaction1="schoolyear")
In [ ]:
# Добавляем социальную селекцию по факультету
# (ученики одного факультета склонны помогать друг другу)
Hogwarts_effects <- includeEffects(Hogwarts_effects,
                                   sameX,
                                   interaction1="house")
In [ ]:
# Алгоритм оценки
Algorithm <- sienaAlgorithmCreate(projname="Hogwarts", cond=FALSE)
In [ ]:
# Результаты!
Results <- siena07(Algorithm, data=Hogwarts, effects=Hogwarts_effects,
                   useCluster=TRUE, initC=TRUE, nbrNodes=4, batch=TRUE)
Results
Out[ ]:
Estimates, standard errors and convergence t-ratios

                                       Estimate   Standard   Convergence 
                                                    Error      t-ratio   
  1. rate basic rate parameter support 27.9679  ( 6.9952   )   -0.0356   
  2. eval outdegree (density)          -6.9758  ( 0.8677   )   -0.0010   
  3. eval reciprocity                   3.0151  ( 0.7645   )    0.0032   
  4. eval transitive ties               3.9098  ( 0.7999   )    0.0112   
  5. eval schoolyear similarity        -0.2482  ( 0.9284   )    0.0251   
  6. eval gender alter                 -1.8397  ( 2.4986   )    0.0773   
  7. eval gender ego                   -2.3509  ( 2.5949   )    0.0127   
  8. eval gender similarity            -1.8568  ( 2.4702   )   -0.0557   
  9. eval same house                    0.4713  ( 0.8268   )    0.0109   

Overall maximum convergence ratio: 0.1874. Total of 2160 iteration steps.


После получения результатов первым дело нужно оценить сходимость модели. В настоящий момент она определяется по двум параметрам:
1) общая t-статистика (Overall maximum convergence ratio) должна быть меньше 0.25;
2) t-статистики (convergence t-ratio) для каждой из переменных должны быть по абсолютному значению меньше 0.1.
         В нашем случае общая t-статистика 0.23, а максимальная t-статистика переменной 0.072, то есть модель сходится и можно приступить к интерпретации полученных результатов.
В отличие от большинства моделей (линейная модель, обобщенная линейная модель, ERG модели и т.д.), в RSiena нет указаний значимости переменных. P-значимость каждой из переменных вычисляется исходя из z-распределения – нужно разделить значение оценки (Estimate) на ошибку (SE). В случае, если отношение больше 2 (точнее 1.96, но на глаз удобнее делить на 2), то этот эффект оказывает значимое влияние на эволюцию социальной сети на уровне 5%.
Посмотрим, что получилось у нас:
  • Параметр "rate basic parameter supportпоказывает, насколько значимы изменения в нашей сети произошли за период наблюдений. Мы видим, что сеть сильно изменилась. 
  • Эффект "eval outdegree (density)" значим и отрицателен. Это говорит о том, что акторы не стремятся формировать связи. Если же связи формируются, то они склонны быть взаимными и транзитивными. 
  • Взаимность "eval reciprocityзначима и положительна. Мы можем с уверенностью сказать, что если Гарри помогает Рону, то и Рон с большой вероятностью будет помогать Гарри. 
  • Транзитивность "eval transitive tiesтоже значима и положительна. Это значит, что если Гермиона помогает Гарри, а Гарри помогает Рону, то в один прекрасный день Гермиона начнет помогать Рону. 
  • Эффект схожести по курсу обучения "eval school year similarityоказывается незначимым. То есть ребята с других курсов мало помогают друг другу в учебе. Эффекты, связанные с полом "eval gender alter", "eval gender ego" и "eval gender similarity", оказываются незначимымиТо есть поведение мальчиков и девочек в сети помощи не имеет значимых различий. Кроме того, мы не наблюдаем сегрегации по полу. Иными словами, и юноши, и девушки в одинаковой степени помогают друг другу, нет явных тенденций.
  •  Наконец, эффект факультета "eval same houseтакже оказывается незначимым. С одной стороны это удивительный результат, так как по логике книги учащиеся из одного факультета гораздо чаще общаются между собой и обычно вместе работают над заданиями. Однако в нашу выборку практически не входит конкретная информация о том, сколько кто и кому помогал на факультете Слизерина. Так что незначимая оценка эффекта может быть связана с тем, что мы полностью сконцентрированы на Гриффиндоре и в данных нет достаточной вариации.

Ограничения САОМ
Хотя САО модели и стали сегодня крайне популярны в сетевом анализе, не стоит забывать и об ограничениях данного метода. Во-первых, в рассматриваемой социальной сети должны происходить изменения, но они не должны быть очень существенными. Коэффициент Жаккара для двух сетей должен быть в интервале от 0,3 до 0,6. То есть с помощью RSiena нельзя моделировать ни формирование сети с нуля, ни очень незначительные изменения в сети. Во-вторых, размер социальной сети не должен превышать 2-3 сотен вершин. В большинстве эмпирических работ, сделанных в RSiena, размер соцсетей и вовсе не превышает даже ста вершин. В-третьих, социальные связи не должны быть единичными «событиями», это должны быть регулярные взаимоотношения. То есть, моделируя социальную сеть общения в Твиттере, в качестве единичного наблюдения нельзя брать один единственный ретвитт.
По этим причинам, в большинстве своем исследования с использованием САОМ проводятся на данных о дружбе и помощи учащихся, а также на данных о взаимодействиях сотрудников организаций. Ну или на данных о школах волшебников!

Комментариев нет:

Отправить комментарий