Дослідження матриці розсіювання графіків для багатьох змінних


10

Я аналізую набір даних з багатьма параметрами (скажімо, 50-200) і мені цікаво розглянути співвідношення між змінними (наприклад, з точки зору 2-змінних графіків розсіювання або 2-х гістограм). Однак для такої кількості параметрів видається нездійсненним намалювати масив ділянок розміром 200x200 (якщо тільки я не надрукую його і не повішу на стіну).

З іншого боку, виконання лише кореляційної матриці не дає всієї інформації про 2-змінні відносини.

Чи існує спосіб (бібліотека чи робочий процес) досліджувати 2-змінні відносини для багатьох змінних?

Мені особливо цікаво показувати результати іншим (можливо, після деякої попередньої обробки даних). Наприклад, щось інтерактивне в JavaScript, чи я можу побачити матрицю розсіювання ділянок для вибраних полів з кореляційної матриці.

Під матрицею розсіювання графіку я маю на увазі щось подібне:

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

(взято з блогу pandasplotting ; aviable у Python / Pandas , R , D3.js тощо).


4
Ви не зрозуміли, що ви хочете. Ви хочете бачити хмару, кожну точку даних? Ви хочете , щоб побачити всі двовимірні межі чи відразу ?
ttnphns

@ttnphns Я хочу бачити всі точки даних АБО їх у деякому агрегованому вигляді (наприклад, 2d гістограми). Мені не потрібно бачити, що все відбувається один раз (як це має сенс для <15 змінних, але не 200). І так, я знаю, що питання дещо відкрите. Закрита версія: "Чи існує бібліотека JS, яка показує графіки розсіювання та гістограми, коли миша наводить на відповідний піксель на кореляційній матриці? Або я повинен написати один? :)" Я написав більш загальну, як, можливо, є кілька кращих робочих процесів для вирішення проблеми.
Piotr Migdal

Можна впорядкувати матрицю розсіювачів у вигляді куба olap, щоб ви бачили лише один або кілька сюжетів одночасно і могли перемикатися між ними. На жаль, я не знаю конкретної програми чи коду для створення графічних кубів olap.
ttnphns

Відповіді:


7

Досліджувати взаємозв'язки між змінними досить невиразно, але дві, більш загальні цілі вивчення таких розсіювачів, як я думаю, є;

  • Визначте основні латентні групи (змінних чи випадків).
  • Визначте інших людей (у одномірному, двоваріантному чи багатоваріантному просторі).

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

Визначення залишків може означати пристосування моделі та побудову графіків відхилень від моделі (наприклад, побудова залишків від регресійної моделі) або зменшення даних у її основні компоненти та лише виділення точок, які відхиляються від моделі чи основного масиву даних. Напр. Коробки в одному або двох вимірах, як правило, показують лише окремі точки, що знаходяться поза петлями (Wickham & Stryjewski, 2013). Складання залишків має гарну властивість, що вона має розгладжувати ділянки (Tukey, 1977), тому будь-які докази стосунків у іншій хмарі точок є "цікавими". Це запитання щодо резюме має кілька чудових пропозицій щодо виявлення багатоваріантних людей, що виживають.

Поширений спосіб дослідження таких великих СПЛОМ - це не побудувати графік усіх окремих точок, а якийсь спрощений підсумок, а потім, можливо, бали, які значною мірою відхиляються від цього резюме, наприклад, еліпси впевненості, скептичні підсумки (Wilkinson & Wills, 2008), двозначні коробчасті ділянки, контурні ділянки. Нижче наводиться приклад побудови еліпсів, які визначають коваріацію та накладення льосового плавнішого для опису лінійної асоціації.

Коррграм Еліпси
(джерело: statmethods.net )

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


Цитати


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

Приклад корпграмного еліпса + легше плавніше все-таки повинен бути доречним (або змінити коварний еліпс на якийсь інший полігон міри, як двоваріантний боксер), і може допомогти ID нелінійних асоціацій. Хорошим подальшим запитанням може бути, якщо можливо ідентифікувати нелінійні асоціації після зменшення даних за допомогою PCA (або щось подібне).
Andy 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.