В этой статье мы представим вам солнечную диаграмму корреляций (solar correlation map) и продемонстрируем простой способ ее создания.
Солнечная диаграмма корреляций.
Древнее проклятие преследует data scientist’ов. Чем больше переменных мы используем в нашей модели, тем больше данных нам требуется. При этом зависимость является экспоненциальной. Однако, сосредоточив наше внимание на самых важных переменных, мы можем избежать как недообучения, так и необходимости собирать большое количество наблюдений. Чтобы определить, какие независимые переменные являются наиболее значимыми, необходимо оценить их взаимосвязь с зависимой переменной. В этом нам помогает корреляция. Сильная корреляция говорит о том, что изменение независимой переменной соответствует сопоставимому изменению зависимой переменной. Вместо того чтобы использовать все доступные независимые переменные в нашей модели, мы хотим отобрать лишь те, которые имеют сильную корреляцию с зависимой переменной.
На этом пути нас подстерегает непростая ситуация. Дело в том, что иногда независимые переменные сильно коррелируют между собой. В качестве примера предположим, что мы хотим предсказать уровень образования родителей в семье. На основе данных мы выяснили, что наблюдается сильная корреляция этого показателя с членством в загородном клубе, количеством автомобилей и стоимостью отдыха. Все эти показатели непосредственно зависят от уровня достатка в семье. Таким образом, истинная корреляция заключается в том, что родители с более высоким уровнем образования обычно имеют более высокий доход. Следовательно, чтобы предсказать уровень образования родителей, мы можем использовать либо доход семьи, либо набор описанных выше переменных. В данном случае имеет место «интеркорреляция», то есть корреляция между независимыми переменными.
Использование большого количества независимых переменных там, где достаточно всего одной, навлекает на нас проклятие размерности (curse of dimensionality) и вынуждает собирать и обрабатывать большие объемы данных. При этом иногда удается получить более эффективное решение, выбрав всего одного представителя из группы интеркоррелирующих переменных. Далее мы рассмотрим процесс анализа корреляций и интеркорреляций с помощью солнечных диаграмм, которые представляют собой специально разработанный новый тип визуализации. Вы также узнаете, как создать собственную солнечную диаграмму.
Применение солнечной диаграммы корреляций при анализе цен на недвижимость
Анализируя данные о ценах на недвижимость, мы можем применить такие инструменты, как матрица ковариаций или матрица корреляций. Эти инструменты очень эффективны, но в то же время сложны для восприятия. Здесь к нам на помощь приходит солнечная диаграмма, позволяющая красиво и компактно представлять эти матрицы, что существенно облегчает исследование корреляций.
Солнечная диаграмма позволяет визуализировать следующие аспекты:
- Корреляции между зависимой и каждой независимой переменной.
- Интеркорреляции между независимыми переменными.
Итак, давайте рассмотрим солнечную диаграмму, созданную для одного из классических наборов данных. В 1990-х годах исследователи университета Карнеги – Меллон собрали данные о ценах на недвижимость в Бостоне. Этот набор данных свободно доступен в репозитории Калифорнийского университета в Ирвайне. Данные содержат несколько независимых переменных, характеризующих дома, а зависимой переменной является цена (MEDV).
Сперва вычислим матрицу корреляций:
Чтобы найти корреляцию между зависимой переменной (MEDV) и данной независимой переменной (например, TAX), просто двигаемся по строке MEDV до пересечения с искомым столбцом TAX. Анализируя интеркорреляции, обычно мы хотим найти все ячейки, абсолютные значения которых превышают, например, 0.8. При работе с крупными наборами данных большое количество строк и столбцов матрицы корреляций существенно затрудняет эту задачу. К счастью, солнечная диаграмма легко решает проблему, благодаря эффективному компактному представлению матрицы корреляций:
Зависимая переменная MEDV (цена дома в Бостоне) представлена в виде Солнца в центре Солнечной системы. Окружности, расположенные вокруг Солнца, представляют собой орбиты планет. Планеты – это независимые переменные, а их спутники (луны) – это другие независимые переменные, с которыми они интеркоррелируют. Чем ближе орбита к Солнцу, тем сильнее корреляция. В частности, ближайшей к Солнцу планетой является переменная LSTAT (процент домохозяйств с низким доходом), далее следует переменная RM (количество комнат), а за ней – переменная PTRATIO (соотношение количества учащихся и учителей). Безусловно, нет ничего удивительного в том, что эти факторы оказывают существенное влияние на цену дома. Именно поэтому мы и выбрали данный пример, чтобы с помощью простого анализа переменных на основе здравого смысла можно было убедиться в корректности солнечной диаграммы.
Орбита, на которой будет располагаться данная независимая переменная, определяется абсолютным значением коэффициента корреляции Пирсона. На первой орбите располагаются переменные с абсолютным значением коэффициента корреляции в интервале 0.9-1.0, на второй орбите – 0.8-0.9 и т.д. Кроме того, информативными признаками могут также служить цвет и размер. Солнце представлено большим кругом, планеты – кругами среднего размера, спутники – кругами малого размера.
Анализ интеркорреляций
Вероятно, вы обратили внимание на то, что в нашей Солнечной системе не так много спутников. Дело в том, что при создании диаграммы по умолчанию мы считаем независимые переменные интеркоррелирующими, если коэффициент корреляции Пирсона превышает 0.8. При этом, в общем случае, корреляция считается сильной, если коэффициент Пирсона превышает 0.5. Таким образом, использованное при создании диаграммы значение 0.8, является достаточно осторожным, но при необходимости этот порог всегда можно настроить. Если в наших данных присутствует несколько интеркоррелирующих друг с другом переменных, тогда переменная, обладающая наибольшей корреляцией с зависимой переменной, становится планетой, а все остальные – ее спутниками. Такая логика гарантирует, что планеты олицетворяют собой независимые переменные, наилучшим образом объясняющие зависимую переменную.
В нашем примере присутствуют только две независимые переменные с сильной интеркорреляцией. Однако подобная ситуация наблюдается далеко не для всех наборов данных. В области больших данных, как правило, мы имеем намного большее количество независимых переменных, соответственно, на солнечной диаграмме может появиться намного больше спутников. Чем больше количество независимых переменных, тем больше проявляется эффективность солнечной диаграммы.
Теперь давайте подробнее рассмотрим интеркорреляцию в нашем примере. На 6-й орбите, обозначенной зеленым цветом, находится планета с одним спутником. Данная планета представляет переменную TAX (налог на недвижимость). Спутником данной планеты является переменная RAD (индекс доступности автомагистрали). Поскольку ставка налога отличается для жилой и коммерческой недвижимости, переменная TAX может служить индикатором, позволяющим разделить территории, на которых располагаются эти типы недвижимости. Компаниям обычно необходим быстрый доступ к автомагистрали, в то время как частные домовладельцы наоборот стремятся жить подальше от выхлопных газов и шума оживленных дорог. Таким образом, тенденция концентрации жилой недвижимости в одних районах, а коммерческой – в других, может являться причиной интеркорреляции этих переменных. Если это предположение справедливо, тогда достаточно включить в модель только одну из них.
Теперь необходимо сказать несколько слов предостережения. Анализ данных не является механическим или детерминированным процессом. Например, даже состоятельная семья может воздерживаться от покупки спортивного автомобиля, беспокоясь о воздействии на окружающую среду. Таким образом, прогнозируя достаток семьи, мы можем наблюдать переменную, определяющую наличие или отсутствие спортивного автомобиля, на достаточно удаленной орбите. На первый взгляд, такое удаленное положение этой переменной свидетельствует о том, что она не является хорошим индикатором благосостояния. Однако простая логика подсказывает обратное. Следовательно, исключение этой переменной из модели будет, скорее всего, неправильным решением, поскольку модель могла бы извлечь из нее пользу. Корреляция – это полезный инструмент, при этом всегда необходимо проверять свои выводы, опираясь на здравый смысл, различные статистические тесты и байесовский анализ.
Используя солнечные диаграммы в исследовательском анализе данных (exploratory data analysis, EDA) и (с осторожностью) при моделировании, мы получаем хороший инструмент для визуальной интерпретации корреляций. Понимание корреляций позволяет нам определить приоритеты при выборе переменных для создания модели: планеты, расположенные на ближайших к Солнцу орбитах, являются многообещающими кандидатами, далее следует обратить внимание на спутники, а затем можно рассматривать более удаленные планеты.
Положительная и отрицательная корреляция
Итак, мы уже знаем, как солнечная диаграмма представляет величину корреляции. Однако для нас также важен знак корреляции. Положительная корреляция означает, что увеличение одной переменной соответствует увеличению другой. Давайте рассмотрим переменную RM, обозначающую количество комнат. Чем больше комнат в доме, тем выше его цена. Это очевидно, поскольку обе переменные характеризуют размер дома. Дом с 10 комнатами, вероятнее всего, будет дороже дома с 2 комнатами. В этом и состоит суть положительной корреляции. На диаграмме мы легко можем определить знак корреляции по цвету метки возле каждой переменной. В частности, мы видим, что имя переменной RM имеет зеленый цвет, следовательно, корреляция между RM и MEDV положительна.
Отрицательная корреляция означает, что увеличение одной переменной соответствует уменьшению другой. Например, чем больше количество преступлений на душу населения, тем меньше цена дома. Соответственно, цвет метки CRIM красный.
Как видите, всего один взгляд на солнечную диаграмму, позволяет нам быстро оценить величину и знак корреляций, а также получить полное представление об интеркорреляциях.
Создаем собственную солнечную диаграмму
Мы можем очень легко создать солнечную диаграмму для собственного набора данных. Первым делом необходимо установить Python-пакет с помощью следующей команды:
pip install solar-correlation-map
Затем в качестве примера загружаем файл jedi.csv из репозитория на GitHub. Этот файл является стандартным CSV-файлом и содержит следующие данные:
Набор данных содержит следующие переменные, характеризующие джедая:
- JEDI. Степень близости к светлой стороне.
- GRAMMAR. Качество языка.
- GREENNESS. Уровень зеленого оттенка кожи.
- IMPLANTS. Количество имплантатов.
- ELEGEN. Энергия.
- MIDI-CHLORIANS. Количество мидихлорианов в крови.
- FRIENDS. Количество друзей.
Обратите внимание, количество мидихлорианов одинаково для всех записей.
Теперь создадим солнечную диаграмму, выполнив следующую команду в каталоге, куда был загружен файл jedi.csv:
winterfell:solar-correlation-map daebwae$ python -m solar_correlation_map jedi.csv JEDI
Перед нами откроется окно с готовой солнечной диаграммой:
Переменная GRAMMAR является ближайшей планетой, а ее метка имеет красный цвет, значит, наблюдается сильная отрицательная корреляция с зависимой переменной JEDI. Следовательно, чем лучше язык, тем менее вероятно, что индивид является джедаем. Кроме того, мы видим, что переменная GREENNESS интеркоррелирует с переменной GRAMMAR, следовательно, обе эти переменные могут выражать влияние одного и того же фактора. Как мы уже отмечали, все индивиды имеют одинаковое содержание мидихлорианов в крови. Следовательно, переменная MIDI-CHLORIANS не может помочь нам при создании модели и, соответственно, находится на самой удаленной орбите.
Существует множество возможностей для усовершенствования солнечной диаграммы корреляций. В этой статье мы презентовали новый инструмент и будем рады услышать ваши идеи по его улучшению.
Три шага к новому типу визуализации
Итак, вы уже знаете, как создать и интерпретировать солнечную диаграмму корреляций. Теперь давайте рассмотрим общий процесс создания нового типа визуализации. Изначально перед нами стояла задача отбора независимых переменных, имеющих наиболее тесную взаимосвязь с зависимой переменной. Для решения этой задачи мы применили матрицу корреляций. Поскольку матрица корреляций не слишком удобна для восприятия, мы выполнили ее визуализацию. В качестве визуальной метафоры была выбрана Солнечная система, поскольку эта концепция знакома каждому. В результате, благодаря эффективному визуальному представлению, достаточно одного взгляда, чтобы определить наиболее значимые переменные и оценить интеркорреляцию.
Таким образом, можно выделить три этапа создания нового типа визуализации:
- Постановка задачи анализа данных.
- Выбор аналитического инструмента, позволяющего решить эту задачу.
- Выбор визуальной метафоры, обеспечивающей эффективное представление результатов.
На протяжении веков сказатели славились смелыми идеями и изобретательностью. Анализ данных имеет много общего с повествованием. Следуя по стопам древних сказателей, data scientist может применять новые средства выразительности, чтобы передать читателю голос данных.
В контексте исследовательского анализа инструменты визуализации играют очень важную роль, позволяя доступно объяснять результаты и убеждать. В этой статье мы представили вам солнечную диаграмму корреляций, а также рассмотрели общую схему процесса создания новых типов визуализации, позволяющих решать реальные аналитические задачи. Анализируя данные, не бойтесь применять новые визуальные концепции, которые еще никто не видел. Дайте свободу своему воображению. Это позволит увлечь читателя, а также расширит арсенал визуальных метафор ваших коллег.
Перевод Станислава Петренко