Уважаемые коллеги, выдалась парочка свободных дней и я тут решил попрограммировать немного в R и научиться немного визуализировать социальные сети. В качестве обучающей базы я использовал данные группы бакалавров 3го курса Факультета Управления ЮФУ, группа достаточно большая и составила 36 студентов (узлов, агентов). Предварительный, самый поверхностный анализ показал достаточно интересные результаты.
Для начала, визуализирую саму сеть. Насколько я правильно успел разобраться в базовых положениях Social Network Analysis (SNA далее), в нашем случае мы имеем дело с направленной сетью (directed network), так как связи студентов и их “дружба” могут быть невзаимными. Поэтому я запрограммировал понимание данной сети как направленной [Геннадий Анатольевич, подправьте меня в каждом случае, где я не прав]. Вот что получилось.
nodes <- read.csv("idnodesfinal_short.csv", header=T, as.is=T, sep = ";")
links <- read.csv("idlinks.csv", header=T, as.is=T, sep = ";")
net <- graph_from_data_frame(d=links, vertices=nodes, directed=T)
ggnet2(net, node.color = "CCIOrd", palette = "Set2",
node.shape = "socialclass", label = TRUE, label.size = 3,
arrow.type = "closed", arrow.size = 5, arrow.gap = 0.015)
Итак, как вы можете видеть, я включил базовые характеристики. Агенты/узлы представлены по форме (которая означает принадлежность к социальному классу) и цвету (означает группу по индексу демонстративного потребления). В нашей социальной сети преобладают студенты из собственно среднего класса, затем идет высший средний класс, с минимальной долей низшего среднего класса. Как можно судить по цвету, значение по индексу демонстративного потребления (CCIOrd) у большинства студентов высокое. Понятное дело, эти данные не имеют статуса научного вывода, они просто характеризуют нашу выборку. Тем не менее, первые паттерны и закономерности можно обнаружить, если попросить R прокластеризовать данную социальную сеть и выявить в ней кластеры/субгруппы/комммьюнитис. Кластеры анализировались по следующим переменным: индекс демонстративного потребления, индекс влияния референтной группы, академическая успеваемость, социальный класс. Математическую операцию за этой процедурой не знаю, поэтому детали тут пролить не смогу. Но машина делает это сама.
Вот что получается (картинка из базовой системы графики, поэтому не такая навороченная :))
clp <- cluster_label_prop(net)
plot(clp, net, edge.arrow.size=.3, edge.curved=.1)
Выводы несколько натянутые, но в структуре сети можно идентифицировать следующие кластеры. Первый кластер зеленого цвета, и он объединил в себе студентов с наиболее высоким индексом ДП. В оппозицию к этому кластеру существует другой кластер из трех девушек (Наталья, Елизавета, Валерия), где индекс ДП наиболее низкий. Третий маленький кластер состоит из студентов со средним значением демонстративного потребления. Два огромных кластера состоят из студентов с высоким и средним индексом. При этом, единственный субъект, который подвержне эксклюзии (некто Avko) принадлежит к низшему среднему классу и имеет низкое значение ДП. Поэтому (наверное :) ) он совсем оторван от остальной студенческой группы.
На следующем этапе я подсчитал престиж и центральность. Существует много способов расчета centrality and prestige (betwennes, closeness, eigenvector, Bonachich Power, alpha), но ознакомившись с большинством из них, я решил остановиться на самом простом: indegree centrality. Иначе говоря, сколько “стрелочек” входит в агента. т.е. сколько студентов указали этого агента как того, с кем хорошие отношения.
Геннадий Анатольевич, если Вы можете посоветовать какой-то другой способ, то я попробую подсчитать его.
Вот так выглядит визуализация сети, если мы укажем критерий indegree-центральности.
Собственно говоря, данный график сделан в виде динамической сети и он сразу содержит много информации. Размер агента в сети зависит от его престижа: чем больше узел, тем престижнее агент. Цвета обозначают индекс демонстративного потребления студента: красные - высокий, синие - средний, зеленые - низкий. Если нажать на агента, то также всплывет его значение престижа (indegree).
То, что у меня после этой картинки возникло на первый взгляд: те агенты, у которых наибольший престиж, также принадлежат к группе топовых демонстративных потребителей. И действительно, подавляющее большинство крупных кружочков - красного цвета. Я решил проверить правомерность этого тренда и построил регрессию престижа и демонстративного потребления студентов.
## Warning: Using size for a discrete variable is not advised.
Я выбрал локальную полиномиальную функцию как наиболее гибкую. Понятное дело, с учетом крохотной выборки модель очень неточна, и так как разброс данных велик, реальный вывод о том, что одно зависит от другого, сделать сложно. Тем не менее, как набросок: демонстративное потребление для представителей высшего среднего класса и собственно среднего класса способствует большему признанию в студенческой группе. И даже хотя тренд этот с позиции математической модели мало обоснован, но все-таки, если вернуться к нашему интерактивному графику динамической сети, четко видно, что именно студенты с высшим индексом ДП также обладают наибольшим престижем.
Кстати. На регрессионном графике я также визуализировал академическую успеваемость, где большие точки обозначают отличников, а маленькие - хорошистов (остальные в выборку не попали). Так вот, выходит что этот тренд работает в большей степени все-таки для хорошистов, нежели для отличников.
Это определенного рода основа, дэдлайн истекает 31 сентября, и надо бы скоро начать писать аннотацию. Обстоятельных эмпирических выводов с этим анализом пока маловато, но на 350 слов обобщить. Геннадий Анатольевич, покажите пожалуйста эту ссылку тем студентам, которым Вы поручили анализ, может у них возникнут какие-то идеи, чем в плане эмпирики аннотацию можно было бы подкрепить: как я помню, Вы подошли к теме с несколько другого ракурса. Лариса Викторовна, Владимир Александрович, если у Вас есть какие-то предложения, замечания, дополнения или вопросы - буду рад ответить. Наверное, мне надо до конца недели набросать какой-то черновик аннотации и отправить его вам на ознакомление и доработку.
Анализ данных, визуализация и публикация были через клевую программу R. Я думаю, она дает отличные возможности для дальнейших научных проектов, чтобы держать связь и информировать о первых результатах анализа.
С уважением, К.А.