Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Добавить ответ в эту темуОткрыть тему
> Построение корреляционного графа и его анализ
nokh
сообщение 8.03.2012 - 16:34
Сообщение #1





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Пробую разобраться в элементах анализа социальных сетей (Social Network Analysis - SNA). Материал: в группах больных и здоровых измерена концентрация 30 биохимических показателей. Хочу сделать следующее:
1) На основании предварительно расчитанных ранговых корреляций построить для обеих групп корреляционные графы, в которых бы рёбра положительных и отрицательных корреляций изображались линиями разного типа, например: сплошной и пунктирной.
2) Используя в качестве порогового значения заданный мной показатель коэффициента корреляции (например +/- 0,3 или +/- 0,5) создать бинарную матрицу смежности. Т.е например, все корреляции менее 0,3 по абсолютной величине станут 0, а |0,3| и более - |1|.
3) Покрутить полученное решение разными алгоритмами и выбрать наиболее наглядное решение. Линии тоже - сплошные и пунктирные.
4) Желательно встроенными в пакет средствами определить кластеры показателей в полученном решении.
5) Сравнить 2 сети и построить некий обобщённый граф, в котором бы различия между ними были хорошо видны.

Много чего скачал и урывками просмотрел хелпы (Pajek, yEd Graph Editor, KrackPlot, Cytoscape, Meerkat, ORA и ещё несколько, включая 2 пакета для R). Основная проблема: разные пакеты не хотят работать с корреляциями или с отрицательными корреляциями. Если работают, то нет возможности автоматически генерировать из них матрицы смежности с разными пороговыми значениями r. Сложилось впечатление, что эволюция пакетов идёт исключительно в сторону возможностей обработки всё больших массивов данных и преимущественно из интернета, а у меня микросеть и несколько другая задача.
Хотелось бы сделать работу в таком ключе: http://www.barabasilab.com/pubs/CCNR-ALB_P...NetMedicine.pdf

Кто работал с сетевым анализом? Подскажите, пожалуйста, какой пакет подойдёт для моих целей? Может посоветуете разные программы для отдельных этапов? Не понятно пока как сравнить сети и визуализировать различия.

PS Всех женщин-участников и читателей форума - с Праздником! Успехов в научных и житейских делах!

Сообщение отредактировал nokh - 8.03.2012 - 17:02
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 8.03.2012 - 20:57
Сообщение #2





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Все манипуляции с графами может делать igraph в R. В том числе находить кластеры узлов. Преобразовать матрицу коэффициентов корреляции как описано проблем никаких не составляет.

Что касается найти общее в двух графах с именованными узлами, то по моему это просто проверка ребер на существование (или равенство для ориентированного графа).

Красиво выводит графы graphviz. Он тоже интегрирован в R (только надо брать по моему с биокондуктора).

А цель именно освоить манипуляции с графами, или получить информацию от датасета?


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
DoctorStat
сообщение 8.03.2012 - 21:59
Сообщение #3





Группа: Пользователи
Сообщений: 377
Регистрация: 18.08.2008
Из: Москва Златоглавая
Пользователь №: 5224



Цитата(nokh @ 8.03.2012 - 17:34) *
Хотелось бы сделать работу в таком ключе: http://www.barabasilab.com/pubs/CCNR-ALB_P...NetMedicine.pdf
Бегло прочитал рекомендуемую англоязычную статью. Из нее следует, что простые коэффициенты корреляции не подойдут. Причина этого аналогична проблеме вычисления частных коэффициентов корреляции для множественной регрессии. Предположим, что у нас есть последовательность реакций превращения веществ: 1 => 2 => 3. Коэффициент корреляции этой схемы r13 положителен, т.к. чем больше вещества 1, тем больше получится вещества 3. Но непосредственной связи (химич.реакции) для узлов 1 и 3 нет, следовательно, не существует и соединяющего эти узлы ребра. Таким образом, прямое использование матрицы корреляций не позволяет построить метаболическую сеть взаимодействия веществ.


Signature
Просто включи мозги => http://doctorstat.narod.ru
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 8.03.2012 - 23:03
Сообщение #4





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(DoctorStat @ 8.03.2012 - 21:59) *
Таким образом, прямое использование матрицы корреляций не позволяет построить метаболическую сеть взаимодействия веществ.


тогда наверное что то такое больше подойдет?

http://cran.r-project.org/web/packages/BiGGR/index.html
http://cran.r-project.org/web/packages/abcdeFBA/index.html

По моему если есть конкретная модель, то её можно выразить в http://cran.r-project.org/web/views/gR.html


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 11.03.2012 - 08:51
Сообщение #5





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(p2004r @ 8.03.2012 - 22:57) *
Что касается найти общее в двух графах с именованными узлами, то по моему это просто проверка ребер на существование (или равенство для ориентированного графа).
А цель именно освоить манипуляции с графами, или получить информацию от датасета?

Цель именно в освоении этой технологии: хотелось посмотреть как она работает в качестве самостоятельно нестатистического метода, хотя и базирующегося на исходных статистических данных: насколько интерпретируемо расположатся вершины в пространстве, что может дать информации о числе связей каждой вершины и т.п.
В принципе, сама задача уже решена. Мы провели 2 нелинейных анализа главных компонент отдельно для группы доноров и группы больных, выделили факторы, сравнили 2 факторные структуры отдельно для каждого фактора (с помощью коэффициентов конгруэнтности) и целиком (с помощью прокрустового анализа), по остаткам прокрустового анализа нашли показатели, по которым факторные структуры наиболее отличались. Оказалось, что в группе здоровых ряд показателей дали нагрузку и на первый и на второй фактор, тогда как в группе больных они чётко разделились по факторам. На основании этого я предположил, что число связей между показателями больше в группе здоровых, а в группе больных число связей сокращается, а их сила увеличивается. Тупо посчитали корреляции более 0,5 в обеих группах и подтвердили предположение. Вот я и задумался: а нельзя ли эти связи представить наглядно в виде корреляционного графа, а если возможно, то и сравнить 2 структуры с помощью технологий сетевого анализа.
В терминологии SNA я пока не силён. Если "проверка рёбер на существование (или равенство для ориентированного графа)" это оценка статистической значимости корреляции, то тут не всё однозначно. Поскольку одна группа была в 2 раза больше другой, то в одной статистически значимыми были связи c r=0,3, а во второй - только с r=0,5. Поэтому я и решил "плясать" не от значимости, а от r.
Цитата(DoctorStat @ 8.03.2012 - 23:59) *
Бегло прочитал рекомендуемую англоязычную статью. Из нее следует, что простые коэффициенты корреляции не подойдут. Причина этого аналогична проблеме вычисления частных коэффициентов корреляции для множественной регрессии. Предположим, что у нас есть последовательность реакций превращения веществ: 1 => 2 => 3. Коэффициент корреляции этой схемы r13 положителен, т.к. чем больше вещества 1, тем больше получится вещества 3. Но непосредственной связи (химич.реакции) для узлов 1 и 3 нет, следовательно, не существует и соединяющего эти узлы ребра. Таким образом, прямое использование матрицы корреляций не позволяет построить метаболическую сеть взаимодействия веществ.

Думаю, попробовать всё равно стоит. Ведь чем длиннее цепочка, тем слабее связь элементов на её концах. Поэтому, подобрав удачное пороговое значение корреляции для её включения с сеть, вероятно возможно добиться, такого графа, когда ребра между 1 и 3 не будет.
***
К сожалению за свободную неделю особо не продвинулся, а сейчас времени будет меньше. Склоняюсь к мысли, что возможно начинать нужно было не с корреляций и SNA, а с чего-то типа путевого анализа или SEM. А богатые возможности накачанного софта использовать исключительно для визуализации полученного решения. Graphviz скачал, но ещё не смотрел (в R он идёт как rgraphviz).
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
arbaiten
сообщение 2.04.2013 - 19:06
Сообщение #6





Группа: Пользователи
Сообщений: 1
Регистрация: 2.04.2013
Пользователь №: 24774



вот отличная статья на тему SNA http://webscience.ru/details/vkusy-svyazi-...etey-na-primere
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 5.05.2013 - 19:28
Сообщение #7





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(arbaiten @ 2.04.2013 - 22:06) *
вот отличная статья на тему SNA http://webscience.ru/details/vkusy-svyazi-...etey-na-primere

не просто отличная, а отличная от темы топика. Причём абсолютно отличная mad.gif

Сообщение отредактировал nokh - 5.05.2013 - 19:31
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 6.05.2013 - 21:30
Сообщение #8





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(nokh @ 5.05.2013 - 19:28) *
не просто отличная, а отличная от темы топика. Причём абсолютно отличная mad.gif


вот по моему подходящий анализ.


Прикрепленные файлы
Прикрепленный файл  MascheriniStefaniniFrascati.pdf ( 134,13 килобайт ) Кол-во скачиваний: 478
 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 19.01.2017 - 17:48
Сообщение #9





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Вынужден сдуть пыль с этой темы.

Nokh, у меня возникла необходимость "сделать красиво" хорошему человеку: в исследовании 100 объектов, каждый объект охарактеризован вектором из 196 координат.

У меня в связи с этим вопрос: корреляционный граф над матрицей размерности 196х196 вряд ли будет информативным, поэтому как происходит "прунинг" ("прореживание") такого графа: выбором порога отсечения? Скажем, все, что по абсолютной величине >=,8 видно, а остальное - нет?

Есть какой-то "самый-самый" пакет с этой точки зрения?

И еще: приходилось ли вам иметь дело с "температурной картой" корреляционной матрицы? Знаю точно, что эта возможность реализована в R, но я в нем ни в зуб ногой.

Как всегда заранее благодарен за любую наводку, подсказку и обмен впечатлениями.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 20.01.2017 - 22:01
Сообщение #10





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(100$ @ 19.01.2017 - 19:48) *
Вынужден сдуть пыль с этой темы.
Nokh, у меня возникла необходимость "сделать красиво" хорошему человеку: в исследовании 100 объектов, каждый объект охарактеризован вектором из 196 координат.
У меня в связи с этим вопрос: корреляционный граф над матрицей размерности 196х196 вряд ли будет информативным, поэтому как происходит "прунинг" ("прореживание") такого графа: выбором порога отсечения? Скажем, все, что по абсолютной величине >=,8 видно, а остальное - нет?
Есть какой-то "самый-самый" пакет с этой точки зрения?
И еще: приходилось ли вам иметь дело с "температурной картой" корреляционной матрицы? Знаю точно, что эта возможность реализована в R, но я в нем ни в зуб ногой.
Как всегда заранее благодарен за любую наводку, подсказку и обмен впечатлениями.

К сожалению, сетевой анализ - один из тех редких случаев, когда я потратил кучу времени впустую. Сейчас уже мало что помню, даже термины из своих постов выше забыл smile.gif Но у меня в компе остались установочные файлы десятка пакетов, а значит я их опробовал и либо не разобрался, либо результат не устроил. Короче, с сетями - завал.

С другой стороны, помочь "хорошему человеку" можно. Ведь не обязательно строить корреляционный граф. Как раз с точки зрения интерпретации связей лучше многомерные проекционные техники типа главных компонент и факторного анализа. Тот подход, который я описал в сообщении #5 - готовая рабочая технология. За прошедшие 5 лет она не претерпела принципиальных изменений, всё что я освоил ещё: 1) проводить анализ на ограниченном числе показателей, но отслеживать в полученном многомерном пространстве и другие интересующие - скажем, индикаторные; 2) сравнивать матрицы факторных нагрузок прокрустовым методом с получением р не только для всей матрицы целиком, но и для строк, столбцов и для каждой отдельной ячейки матрицы (макрос для SPSS Кирилла Орлова http://spsstools.net/ru/KO-spssmacros ) Технология работает, всё всегда хорошо интерпретируется, все довольны. Показателей, конечно, многовато; я бы с хорошим человеком-специалистом в предметной области выбрал из 196 меньший, но более осмысленный набор.

По "температурным" графикам кроме R - вероятно мало что есть. Я когда-то баловался такой штукой: http://www.cs.umd.edu/hcil/hce/ Проект мёртвый, но поскольку делался на академические деньги - доступен бесплатно. Кстати, two-way кластерный анализ здесь тоже очень неплох в качестве эксплораторного метода. Но, насколько помню, в HCE мер расстояния катастрофически мало.

Если не "моя" технология, то найдите картинку в сети, типа чего хотите получить. Можно попробовать и в R это сделать - мне тоже полезно будет освоить + в этом семестре время пока б/м есть.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 21.01.2017 - 12:50
Сообщение #11





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Цитата(nokh @ 20.01.2017 - 22:01) *
Ведь не обязательно строить корреляционный граф. Как раз с точки зрения интерпретации связей лучше многомерные проекционные техники типа главных компонент и факторного анализа. Тот подход, который я описал в сообщении #5 - готовая рабочая технология. За прошедшие 5 лет она не претерпела принципиальных изменений, всё что я освоил ещё: 1) проводить анализ на ограниченном числе показателей, но отслеживать в полученном многомерном пространстве и другие интересующие - скажем, индикаторные; 2) сравнивать матрицы факторных нагрузок прокрустовым методом с получением р не только для всей матрицы целиком, но и для строк, столбцов и для каждой отдельной ячейки матрицы (макрос для SPSS Кирилла Орлова http://spsstools.net/ru/KO-spssmacros ) Технология работает, всё всегда хорошо интерпретируется, все довольны. Показателей, конечно, многовато; я бы с хорошим человеком-специалистом в предметной области выбрал из 196 меньший, но более осмысленный набор.

По "температурным" графикам кроме R - вероятно мало что есть. Я когда-то баловался такой штукой: http://www.cs.umd.edu/hcil/hce/ Проект мёртвый, но поскольку делался на академические деньги - доступен бесплатно. Кстати, two-way кластерный анализ здесь тоже очень неплох в качестве эксплораторного метода. Но, насколько помню, в HCE мер расстояния катастрофически мало.

Если не "моя" технология, то найдите картинку в сети, типа чего хотите получить. Можно попробовать и в R это сделать - мне тоже полезно будет освоить + в этом семестре время пока б/м есть.


Nokh, спасибо,
у меня на периферии сознания факторный анализ маячит постоянно, но уж больно у меня нетривиальная задача: этот вектор о 196 координатах - адская смесь дихотомических, порядковых и количественных показателей. Думал состряпать матрицу коэффициентов Гауэра (корреляции разнотипных признаков), а над ней повесить упомянутый граф - больно уж заказчик впечатлился, увидев его в одной опубликованной статье. Вот тут и возникает вопрос: в том же R, например, над готовой матрицей можно построить граф, или нужны "сырые" данные.

Буквально вчера убедился, что температурная карта матрицы корреляций уже реализована в Statistica, начиная с 13 версии. Однако, похоже, это возможно только при формировании корр. матрицы из "сырых" данных и раскрасить таким образом готовую матрицу не получится. Чует мое сердце, что придется писать макрос к Экселю...

Сообщение отредактировал 100$ - 21.01.2017 - 12:51
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
passant
сообщение 21.01.2017 - 13:55
Сообщение #12





Группа: Пользователи
Сообщений: 231
Регистрация: 27.04.2016
Пользователь №: 28223



Цитата(100$ @ 21.01.2017 - 11:50) *
Вот тут и возникает вопрос: в том же R, например, над готовой матрицей можно построить граф, или нужны "сырые" данные.

Знаю, что R-пакет igraph это (над готовой матрицей построить граф) позволяет делать. Элементарное введение - тут
https://habrahabr.ru/company/infopulse/blog/268917/
и вот тут
http://asocialnetworks.blogspot.com/2016/03/r_37.html

Если просто нарисовать красивый граф - то попробуйте посмотреть тут
https://gephi.org/
Бесплатно и кроссплатформенно.

Если интересует именно EXCEL - то может самому писать и не придется :-), гляньте тут:
http://nodexl.codeplex.com/
Бесплатно и красиво.

Сообщение отредактировал passant - 21.01.2017 - 14:55
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 21.01.2017 - 15:18
Сообщение #13





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Джентльмены, спасибо. Ажно глаза разбегаются.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 23.01.2017 - 09:11
Сообщение #14





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Цитата(100$ @ 21.01.2017 - 14:50) *
Nokh, спасибо,
у меня на периферии сознания факторный анализ маячит постоянно, но уж больно у меня нетривиальная задача: этот вектор о 196 координатах - адская смесь дихотомических, порядковых и количественных показателей. Думал состряпать матрицу коэффициентов Гауэра (корреляции разнотипных признаков), а над ней повесить упомянутый граф - больно уж заказчик впечатлился, увидев его в одной опубликованной статье. Вот тут и возникает вопрос: в том же R, например, над готовой матрицей можно построить граф, или нужны "сырые" данные.

Гауэр - г..., вообще "не работает". Не знаю почему не работает; решения на простых, пусть и некорректных, пирсоновских корреляциях, всегда куда лучше интерпретируются. В нахваливаемом мной нелинейном анализе главных компонент тоже можно работать с "адской смесью". Только каждый признак придётся настраивать вручную, поэтому и написал, что 196 - многовато. Плюс вообще, таблицу факторных нагрузок из 196 строк сложно и неудобно интерпретировать (обычно у меня - до 25-30 максимум). Может для 196 именно граф и оптимален, если получится сделать - покажете картинку?
Я пользуюсь тем вариантом нелинейного PCA, в котором к исходной матрице данных применяется преобразование Джифи (Gifi). Там история интересная. Альберт Джифи, вообще говоря, был дворецким Фрэнсиса Гальтона, который наряду с Пирсоном делал современную статистику в конце 19 века. Может он в чём-то помогал Гальтону и был несправедливо обделён вниманием - не знаю, но только в 1990 г вышла монография Gifi, A. (1990). Nonlinear Multivariate Analysis (Ed. W. Heiser, J. J. Meulman, & G. van den Berg). Wiley, Chichester. В ней под коллективным псевдонимом А. Джифи стоял коллектив математиков из лейденского университета (Нидерланды), который возглавлял американец Ян де Лиув (так он сам произносит своеё имя у себя на сайте). Книгу выпустили, но далее пути участников проекта разошлись. В Лейдене осталась работать команда под началом Anita J. van der Kooij, они внедрили метод в пакет SPSS под названием CATPCA (Categorical PCA), причём никогда и никак не ссылаются на Jan de Leeuw (видно дружно поработали). Jan de Leeuw выпустил на том же преобразовании Джифи пакет homals под R, кстати тоже на голланцев не ссылается, всё больше на себя:). Суть преобразования заключается в многомерной взаимной линеаризации связей показателей. CATPCA и homals дают при "грубых" настройках идентичные результаты, но CATPCA позволяет сделать более тонкую настройку и применить вращение факторного решения, поэтому мне нравится именно эта реализация. По мне так вообще метод универсальный: если все признаки качественные - получатся решение с математикой множественного анализа соответствий, но в терминах PCA, если все признаки количественные - можно получить решение в точности равное РСА (смотря как группировку настроить), для порядковых признаков можно использовать ранжирование и сглаживание сплайнами... Если будет интерес - могу показать на каком-нибудь небольшом примере.

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 23.01.2017 - 11:18
Сообщение #15





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(nokh @ 23.01.2017 - 09:11) *
решения на простых, пусть и некорректных, пирсоновских корреляциях, всегда куда лучше интерпретируются



Projection methods не имеют отношения к "пирсоновским корреляциям". Просто даже по названию не имеют, не говоря уже о своей природе.



Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

2 страниц V   1 2 >
Добавить ответ в эту темуОткрыть тему