Показаны сообщения с ярлыком SAOM. Показать все сообщения
Показаны сообщения с ярлыком SAOM. Показать все сообщения

понедельник, 23 января 2017 г.

С чего начать знакомство с социальными сетями: миллион вопросов в одном месте


У нас часто спрашивают, с чего начать знакомство с социальными сетями. Какие книги и статьи прочитать, в каких программах работать с сетевыми данными, какие курсы пройти? Наконец, мы собрали все наши ответы в одном месте.

         Что читать?
        О социальных сетях сегодня написано много вводных работ и книг. Часть из них написана социологами, часть – информатиками и физиками.
В руководствах по сетям, написанных социологами и психологами, много внимания уделяется сбору сетевых данных, формированию баз данных и введению в статистические методы анализа сетей. Здесь стоит сказать о статье Гэри Робинса «Руководство по методам моделирования и анализа сетевых данных», книге Кристины Прелл «Анализ социальных сетей. История, теория и методология», а также учебнике Стэнли Вассермана и Кэтрин Фауст «Анализ социальных сетей. Методы и приложения». В этих работах описываются ключевые положения теории графов, объясняются основные способы сбора сетевых данных, метрики сетей и статистические подходы к анализу графов.
Работы по сетям, написанные физиками, в основном о том, как формируются сети и какие процессы в них происходят. Из таких работ советуем почитать книгу Альберта-Ласло Барабаши «Сетевая наука», книгу Марка Ньюмана «Сети. Введение», его же обзор «Структура и функции сложных сетей», работу «Сети, толпы и рынки» Дэвида Изли и Джона Кляйнберга.

Книга Кристины Прелл "Анализ социальных сетей. История, теория и методология". Источник изображения.

Что смотреть?
На платформах онлайн-курсов предлагается большое количество курсов по сетевому анализу. Например, в курсе «Прикладной сетевой анализ на языке Питон» рассказываются базовые вещи про социальные сети, а то, как их с ними работать, показывается в пакете networkX в Python. Кстати, недавно мы уже писали, как работать в этом пакете, используя в качестве примера сеть из Facebook. 
Большой популярностью также пользуется курс на Курсере «Социальные и экономические сети», в котором Мэттью Джексон рассказывает о структуре социальных и экономических сетей, об играх в сетях и о многом другом. Надо сказать, что хотя курс и записан достаточно давно, каждую сессию он набирает большое число слушателей.
На русском языке о социальных сетях можно посмотреть курс и порешать задачи от Леонида Жукова. Так как курс рассчитан не на широкую аудиторию, а на студентов факультета компьютерных наук, то некоторые теоретические выкладки и практические задания могут показаться достаточно сложными.

А в чем анализировать сети?
Для анализа соцсетей разработано большое количество программ. Самые простые из них – UCINET, ORA, Pajek и Gephi, для их использования необязательно владеть навыками программирования. Первые две программы распространяются по лицензии, а Pajek и Gephi – бесплатные. 
Более детально проанализировать данные можно статистической среде R. Для расчета базовой описательной статистики в R можно использовать пакеты sna, igraph, network. Для построения статистических моделей сетей будут полезны пакеты statnet, ergm и Rsiena. Для работы с сетями в Python можно использовать пакеты igraph, networkX и graphtool. Мы также писали в этом блоге, как можно анализировать динамические сети в R на примере дружеских связей из книг о Гарри Поттере.
        И это еще не все. Множество разнообразных сетевых ресурсов обо всем на свете можно найти на сайте "Потрясающий сетевой анализ".

пятница, 11 ноября 2016 г.

Пять рассылок о социальных сетях

        Часто информацию о специальных выпусках журналов, предстоящих конференциях и летних школах и технических особенностях работы программного обеспечения не так просто найти. Удобный способ быть в курсе - это получать специализированные рассылки. В этом посте мы расскажем о пяти ресурсах, благодаря которым можно узнавать про самые горячие обсуждения в сетевом анализе.        


1.   Socnet
Подписаться можно по этой ссылке.
Socnet – это рассылка ассоциации сетевых исследований INSNA, посвященная очень широкому кругу сетевых вопросов. В этой рассылке можно найти вакансии, анонсы конференций и воркшопов, приглашения к публикации в специальных выпусках журналов. Помимо объявлений, в Socnet появляются общие вопросы по поводу литературы в области. 

2.   Igraph
Подписаться можно по этой ссылке.
Здесь обсуждаются вопросы по работе в пакете igraph. Здесь достаточно много простых вопросов, и новички смогут найти большое количество информации для работы в этом пакете. На вопросы чаще всего отвечает сам создатель пакета Габор Ксарди.

3.   Statnet
Подписаться можно по этой ссылке.
В основном, эта рассылка посвящена пакету statnet и оценке моделей группы ERGMоднако иногда здесь появляются и общие вопросы по работе с сетевыми данными в среде R. Чаще всего отвечают на вопросы разработчики пакетов Мартина Моррис и Картер Баттс.

4.   Epimodel
Подписаться можно по этой ссылке.
Эта рассылка будет интересна и полезна тем, кто моделирует распространение эпидемий с использованием сетевых данных в пакете EpiModel. Большинство вопросов о технических деталях и трудностях, но иногда публикуется информация о летних школах и конференциях. Чаще всего на вопросы отвечает разработчик пакетов Сэмуэль Дженнис.

5.   Stocnet
Подписаться можно по этой ссылке.
Здесь обсуждаются вопросы, связанные с моделями группы SAOM (Siena). В основном, в рассылке обсуждают технические вопросы, но нередко появляется информация о вакансиях, анонсах конференций, воркшопах и летних школах. Чаще всего на вопросы отвечает создатель этой модели Том Снайдерс.

среда, 23 марта 2016 г.

Сплетни в организациях, мультисети и советское научное кино

Что интересного в организациях?
Сетевой анализ, несомненно, очень популярен при изучении организаций, потому что они будто и созданы специально для этого. Как правило, этим занимаются исследователи из сферы менеджемента, но также встречаются и социологи, экономисты, антропологи.
Часто эти исследователи интересуются тем, как устроены неформальные сети в организации, к примеру, сети дружбы, помощи, доверия. Какие сетевые сообщества выстраиваются на основе этих неформальных сетей и как они коррелируют с формальными организационными структурами? Какое место в сети занимают определенные сотрудники, кто звезда, брокер, а кто — изолят? Как происходит передача информации по неформальным сетям? Это основные вопросы для исследователей из этой области. Однако ключевой вопрос, конечно, - это как сделать работу в организациях более продуктивной и комфортной.

Сплетни и слухи в организациях
Одна из работ про сети в организациях, которая нам кажется любопытной, — это работа Леи Эллвардт, Кристиана Штиглиха и Рафаэля Виттека «Коэволюция сплетен и дружбы в социальных сетях на работе». В ней изучаются мультисети, которые в последнее время стали «горячей темой». К примеру, совсем недавно вышел специальный номер про мультисети в Social Networks.
Мультисети — это несколько типов взаимоотношений между одними и теми же акторами, которые происходят одновременно. Изменение в одной взаимозависимой сети может вызвать изменение в другой взаимозависимой сети, и наоборот. Изучение таких сетей достаточно сложно, потому что в них всё связано со всем. Сами Эллвардт и ее коллеги пишут, что их работа — первая, в которой мультисети изучаются в динамике.
Сплетни — достаточно двоякое явление. С одной стороны, пересказ сплетен какому-либо человеку — это демонстрация того, что мы этому человеку доверяем. С другой стороны, излишняя склонность к ним может привести к потере дружеских связей. В целом, сплетни активно включены в любые дружеские связи, однако Эллвардт с коллегами пишут, что в организациях этот вопрос пока недостаточно изучен, хотя важен для понимания того, как переходят потоки информации и формируется коллаборация.

"Мы не сплетничаем, мы завязываем связи". Источник изображения

         Чтобы разобраться в этом, они изучают взаимосвязь и развитие сетей дружбы и сплетен в одной голландской некоммерческой организации. Это компания достаточно мала по количеству сотрудников, что как раз хорошо для того, чтобы между людьми были плотные связи и большинство из них знали друг друга. В течение года они проводили опрос 3 раза, в каждой из волн приняли участие около 30 сотрудников.
Исследователи избегали называть сплетни «сплетнями», потому что было показано, что это слово имеет негативные коннотации и респонденты склонны врать при такой формулировке. Поэтому они спрашивали про такое поведение более абстрактно: участвовали ли сотрудники в неформальном оценочном обсуждении коллег и если да, то с кем из коллег.

Изображение из работы Ellwardt et al (2012): сети сплетен и дружеских связей в организации и их развитие во времени.

        Для анализа Эллвардт и ее коллеги использовали акторно-ориентированные модели, про которые мы уже писали в посте про Гарри Поттера. Какие же были результаты?
1. Сотрудники не склонны сплетничать с людьми, которых они уже считают своими друзьями. Видимо, услышать сплетню от близкого друга — это задуматься о том, не сплетничает ли друг и о нас?
2. Сплетничающие коллеги склонны со временем становиться друзьями. Скорее всего, передача информации служит каналом для установления более крепких связей.
3. Люди, которые активны в распространении сплетен, становятся со временем менее популярными в дружеской сети. Опять же, сплетничающие люди выглядят опасными и не все отважатся с ними дружить.
Какой основной вывод этой работы? Сплетни — триггер к возникновению дружбы.

Немного старины
Сплетни и сопутствующие скандалы-интриги-расследования заметно бодрят, но иногда хочется отойти от тревог и окунуться в старину. Не так давно мы заинтересовались старыми научно-популярными фильмами. Все началось с сайта «Медицинские фильмы в сети», где выложены старые западные киноленты о самом разном (например, фильм 1918 года о пластической хирургии или 1930-х — о симптомах шизофрении). По ходу дела вспомнили про один из позднесоветских фильмов, который, в сущности, про сети в организациях. Это фильм 1976 года и называется он «Управление проектами в СССР».


Из фильма мы узнаем про СПУ — это «сетевое планирование и управление», которое применяется в строительстве, на производстве и в научно-исследовательских лабораториях. В основе этой техники лежит сетевая модель управления процессами, в которой узлы обозначают события, а связи — процесс работы. Вся сеть — это весь процесс производства.
Фильм интересен тем, что в нем достаточно просто объясняются некоторые базовые понятия сетевого анализа. Например, подробно рассматриваются расстояния в сети, мы узнаем про замкнутые на себе и тупиковые события, вероятностные сети. В фильме подробно разбирается производство ротора турбины. Звучит серьезно, но диктор настолько плавно и убаюкивающее рассказывает про этот ротор под спокойную музыку, что весь процесс кажется удивительным чудом, построенным на хитроумном сплетении узлов и связей.

Идеальный объект
В целом, организации — идеальный объект для тех, кому интересен сетевой подход. Здесь мы можем изучать и взаимоотношения между людьми, и процессы в организациях, и коллаборации между организациями. Простор для исследований велик.

среда, 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, размер соцсетей и вовсе не превышает даже ста вершин. В-третьих, социальные связи не должны быть единичными «событиями», это должны быть регулярные взаимоотношения. То есть, моделируя социальную сеть общения в Твиттере, в качестве единичного наблюдения нельзя брать один единственный ретвитт.
По этим причинам, в большинстве своем исследования с использованием САОМ проводятся на данных о дружбе и помощи учащихся, а также на данных о взаимодействиях сотрудников организаций. Ну или на данных о школах волшебников!