Исследование матрицы рассеяния для многих переменных


10

Я анализирую набор данных со многими параметрами (скажем, 50-200), и мне интересно посмотреть на связи между переменными (например, с точки зрения диаграмм рассеяния с 2 переменными или гистограмм 2d). Однако для этого количества параметров кажется невозможным нарисовать массив графиков 200х200 (если я не распечатал его и не повесил на стену).

С другой стороны, выполнение только корреляционной матрицы не дает всей информации о 2-переменных отношениях.

Есть ли способ (библиотека или рабочий процесс), чтобы исследовать отношения двух переменных для многих переменных?

Мне особенно интересно показывать результаты другим (возможно, после некоторой предварительной обработки данных). Например, что-то интерактивное в JavaScript, где я могу видеть матрицу точечного графика для выбранных полей из корреляционной матрицы.

Под матрицей точечного графика я имею в виду нечто подобное:

введите описание изображения здесь

(взято из блога pandasplotting ; доступно в Python / Pandas , R , D3.js и т. д.).


4
Вы не ясно дали понять, что вы ищете. Хотите увидеть облако, каждую точку данных? Хотите увидеть все двумерные грани одновременно ?
ttnphns

@ttnphns Я хочу видеть все точки данных ИЛИ их в некоторой агрегированной форме (например, 2d гистограммы). Мне не нужно видеть все вещи один раз (так как это имеет смысл для <15 переменных, но не 200). И да, я знаю, что вопрос немного открытый. Закрытая версия: «Есть ли библиотека JS для отображения графиков рассеяния и гистограмм при наведении курсора мыши на соответствующий пиксель в матрице корреляции? Или я должен написать один? :)» Я написал более общую, так как, возможно, есть некоторые лучшие рабочие процессы для решения проблемы.
Петр Мигдаль

Можно организовать матрицу диаграмм рассеяния в виде куба Олапа, чтобы вы могли видеть только один или несколько графиков одновременно и могли переключаться между ними. К сожалению, я не знаю конкретной программы или кода для создания графических кубов olap.
ttnphns

Ответы:


7

Исследовать отношения между переменными довольно расплывчато, но я думаю, что есть две более общие цели изучения диаграмм рассеяния;

  • Определите скрытые группы (переменных или случаев).
  • Выявить выбросы (в одномерном, двумерном или многомерном пространстве).

Оба сводят данные в более управляемые сводки, но имеют разные цели. Выявление скрытых групп обычно уменьшает размеры данных (например, через PCA), а затем исследует, объединяются ли переменные или случаи в этом уменьшенном пространстве. См., Например, Friendly (2002) или Cook et al. (1995).

Выявление выбросов может означать либо подгонку модели и построение графика отклонений от модели (например, построение остатков от регрессионной модели), либо сокращение данных до основных компонентов и выделение только тех точек, которые отклоняются от модели или основной части данных. Например, на коробчатых диаграммах в одном или двух измерениях обычно показаны только отдельные точки, находящиеся вне петель (Wickham & Stryjewski, 2013). Хорошее свойство построения графиков остатков заключается в том, что они должны сглаживать графики (Tukey, 1977), поэтому любые доказательства связей в оставшемся облаке точек являются «интересными». Этот вопрос по CV содержит несколько отличных предложений по выявлению многомерных выбросов.

Распространенный способ исследования таких больших SPLOMS - это построение не всех отдельных точек, а некоторого типа упрощенной сводки, а затем, возможно, точек, которые в значительной степени отклоняются от этой сводки, например, эллипсы доверия, резюмирующие сводки (Wilkinson & Wills, 2008), двумерные коробочные участки, контурные участки. Ниже приведен пример построения эллипсов, которые определяют ковариацию и наложение более гладкого лесса для описания линейной ассоциации.

Коррграммы эллипсы
(источник: statmethods.net )

В любом случае, для реального успешного интерактивного графика с таким количеством переменных, вероятно, потребуется интеллектуальная сортировка (Wilkinson, 2005) и простой способ фильтрации переменных (в дополнение к возможностям чистки / связывания). Также любой реалистичный набор данных должен иметь возможность преобразовывать оси (например, наносить данные на логарифмическую шкалу, преобразовывать данные, укореняться и т. Д.). Удачи, и не придерживайтесь только одного заговора!


Цитирование


1
Спасибо! Моя цель - изучить данные до запуска PCA, поскольку переменные могут быть связаны нелинейным образом и требуют масштабирования (или другой обработки).
Петр Мигдаль

Тогда пример коррграммы ellipse + loess smoother все еще должен быть уместным (или изменить covar. Ellipse с другим полигоном меры, таким как двумерный блок-график) и может помочь идентифицировать нелинейные ассоциации. Хорошим последующим вопросом может быть, возможно ли идентифицировать нелинейные ассоциации после редукции данных через PCA (или что-то в этом роде).
Энди W

1

Вы можете рассмотреть возможность использования блестящего интерфейса из пакета pairD3 R, который предоставляет способ взаимодействия с матрицами точечной диаграммы.

Пример с набором данных радужной оболочки:

install.packages("pairsD3")
require("pairsD3")
shinypairs(iris)

Источник: https://github.com/garthtarr/pairsD3

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.