Який хороший спосіб графічного представлення дуже великої кількості парних точок даних?


9

У моєму полі звичайний спосіб побудувати парні дані - це серія тонких похилих відрізків ліній, перекриваючи їх медіаною та CI медіани для двох груп:

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

Однак подібний сюжет стає набагато складнішим для читання, оскільки кількість точок даних стає дуже великою (у моєму випадку я маю порядку 10000 пар):

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

Скорочення альфа трохи допомагає, але це все ще не чудово. Шукаючи рішення, я натрапив на цей документ і вирішив спробувати реалізувати «паралельну графіку лінії». Знову ж таки, це дуже добре працює для невеликої кількості точок даних:

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

Але ще важче зробити такий сюжет добре виглядати, коли N дуже великий:

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

Я припускаю, що я міг би окремо показати розподіли для двох груп, наприклад, із скриньками або скрипками, а також накреслити рядок із смужками помилок вгорі, що показує два медіани / CI, але мені ця ідея дуже не подобається, оскільки вона не передавала б парний характер даних.

Я також не надто захоплююсь ідеєю двовимірного розсіяння сюжету: я б віддав перевагу більш компактному зображенню, і в ідеалі - такому, в якому значення для двох груп будуються на одній осі. Для повноти, ось як виглядають дані як двовимірний розкид:

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

Хтось знає про кращий спосіб представити парні дані з дуже великим розміром вибірки? Не могли б ви зв’язати мене з якимись прикладами?

Редагувати

Вибачте, я, очевидно, не зробив достатньо хорошої роботи, щоб пояснити, що я шукаю. Так, 2D-графік розсіювання працює, і є багато способів, за допомогою яких це можна було б покращити, щоб краще передати щільність точок - я міг кольорово-кодувати точки згідно з оцінкою щільності ядра, я міг би зробити 2D-гістограму , Я можу накреслити контури поверх точок тощо, тощо.

Однак я думаю, що це надмірно для повідомлення, яке я намагаюся передати. Мені не дуже важливо показувати 2D щільність точок як такої - все, що мені потрібно зробити, це показати, що значення для "барів", як правило, більше, ніж значення для "крапок", максимально простим і зрозумілим способом. , і не втрачаючи істотного парного характеру даних. В ідеалі я хотів би побудувати парні значення для двох груп уздовж однакових, а не ортогональних осей, оскільки це полегшує візуальне їх порівняння.

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


1
Ви спробували просто побудувати відповідні значення barна горизонтальній та dotвертикальній осях як розсіювач?
До Гофмана

@TillHoffmann Так, я це зазначив наприкінці запитання. Це, мабуть, найкращий варіант, який я маю на даний момент, але я вважаю за краще компактне представлення, і в ідеалі таке, яке відображає значення обох груп уздовж однієї осі (можливо, я до цього вимагаю необгрунтовано ...). Додамо розсипку до свого запитання.
ali_m

вибачте, я пропустив це. Як ви зараз формуєте свої синтетичні дані?
До Гофмана

2
Чи можете ви пояснити, що ви маєте на увазі під «компактним» поданням? Розсіювальний апарат явно перевершує всі інші з точки зору показу взаємозв'язків, а також індивідуальних незвичних даних на невеликій території; вона лише росте краще, оскільки розмір набору даних збільшується. (10 000 не є великим для розсипача.) Ви згадуєте стільки різних графіків, що неможливо вивести те, що вам справді потрібно. Скажіть, будь ласка, мету вашої візуалізації: яку саме інформацію ви сподіваєтеся дізнатись чи передати іншим? Наскільки точно і швидко ви маєте намір це сприймати і розуміти?
whuber

1
@whuber Вибачте за незрозумілість. На що я сподівався - це спосіб представити дані таким чином, що значення обох груп будуються на одних і тих же, а не ортогональних осях (як вони знаходяться на ділянках 'похила лінія' та 'паралельна лінія'). Повідомлення дуже просте - що значення для "брусків", як правило, вище, ніж значення для "крапок". Крім того, мені не дуже важливо представляти щільність розподілу, хоча я хотів би сказати, що у вибірці є велика кількість пар.
ali_m

Відповіді:


7

З огляду на те, як я розумію вашу мету, я б просто обчислив парні відмінності ( bars - dots), а потім побудував би ці відмінності в графіку оцінки щільності гістограми або щільності ядра. Ви також можете додати будь-яку комбінацію (1) вертикальної лінії, що відповідає нульовій різниці (2), будь-якого вибору відсотків.

Це дозволило б виділити, яка частина даних barsперевищує dots, і взагалі які спостерігаються відмінності.

(Я припускав, що вам не цікаво відображати фактичні, вихідні значення barsта dotsв тому ж графіку.)

Можна також побудувати достовірність або задні достовірні інтервали, щоб вказати, чи є ці відмінності суттєвими. (H / T @MrMeritology!)


Додавши до цієї відповіді: ви також можете побудувати інтервали довіри для парних відмінностей, які візуально покажуть, чи є різниці суттєвими чи ні.
MrMeritology

При такій кількості пар може бути цікаво дізнатись, чи залежить різниця і від "початкової точки", щоб ви могли підійти до такої моделі, як yB=μ+offset(yA)+Δ(yAy¯Aа може, навіть квадратичний термін! Графічно накресліть paisr, як ви показали, але зі зменшеною альфа-кольором та кольором залежно від нахилу.
kjetil b halvorsen

2

З такою кількістю пар у вас є можливість більш глибоко дослідити структуру, як би різниця yByA залежить від "початкової точки" yA!

Ви можете підійти до подібної моделі

yB=μ+offset(yA)+Δ(yAy¯A)+ϵ
і ви навіть можете додати квадратичний термін +Δ2(yAy¯A)2 або ви можете замінити лінійний + квадратичний додаток на сплайн, використовуючи узагальнену модель добавки (або регресійні сплайни).

Графічно ви можете показати рядки, як ви показали, зі зменшеним коефіцієнтом альфа (*), можливо, зменшуючи подальше, показуючи лише випадкову вибірку рядків. Тоді ви можете розфарбувати лінії відповідно до нахилу ...

Щодо сюжетів Бланда-Альтмана, згаданих у коментарі Ніка Кокса, див., Наприклад, приклад Угоди між методами з декількома спостереженнями на людину або перегляньте тег.

(*) альфа-коефіцієнт тут є графічним параметром, що робить точки на графіку прозорими, тому перші нанесені точки не є повністю загроженими пізнім переплавленням.


1
Думаю, в подібному дусі будується різниця (A B) по відношенню до середнього (A + B) / 2 є загальним пристроєм у багатьох полях. Назва, яка застрягла в медичній статистиці, - "сюжети Бланда-Альтмана", хоча зацікавлені автори не претендували на оригінальність і ідея походить щонайменше до 1950-х років.
Нік Кокс

1

Я вважаю за краще 2D сюжет розсіювання. Я б намалював опорну лінію світло-сірим кольором для більшої контрастності в переповненій області. Для зменшення скупченості малюйте маркери без меж, додатково зменшуйте альфа, зменшуйте розмір маркера.

Це означає, що якщо ви більше цікавитесь типовими парами, ніж крилами розподілу, спробуйте накреслити по рядку кумулятивну суму dotsпроти кумулятивної суми bars. Сюжет все ще 2D, але з набагато меншою кількістю чорнила. Для збереження також ділянки графіку, ви можете повернути слід на 45 °, щоб кадр виконував роль опорного напрямку.

Цей сюжет також показав би будь-яку тенденцію в даних. Якщо процес , як відомо, стаціонарні, сортувати пари від, наприклад, їх середнє геометричне, sqrt(bars*dots).


0

Я рекомендую побудувати лінії, як їх у вас є для медіани та кватилів, або стільки відсотків, скільки ви хочете з цього приводу. Медіана може залишатися товстішою / помітнішою, ніж інші перцентильні лінії. Це допоможе зберегти можливість бачити, як поводяться дані в ході розповсюдження, не порушуючи простоту та знайомість сюжету, який зараз використовується у вашому полі.

Крім того, при такому великому розмірі вибірки середня або середня тенденція із смугами помилок, ймовірно, буде достатньою, оскільки ви б так ретельно насолоджувались теоремою центрального межі. Біомедичне поле також покладається на ці парні графіки ліній, але це часто трапляється, оскільки розмір вибірки може бути приблизно 10-20, тому важливо візуалізувати потенційні точки важеля.


0

Моя перша пропозиція - це розсіяний сюжет.

Якщо на вашій ділянці 10000 крапок нерівномірно все-таки неясна хмара, розгляньте теплову карту. Колір пікселя при x = 10,5, y = 11,5 означатиме, скільки разів значення між 10,45 та 10,55 відображається на значення між 11,45 та 11,55: 0 = білий = RGB (255,255,255), 1 = синій = RGB (0, 0,255), 2 = RGB (1,0254), ... 256 і вище = RGB (255,0,0) = червоний


Це по суті дає мені таке ж представлення, як і 2D розсіювання, за винятком меншої роздільної здатності. Я можу в кінцевому підсумку зробити щось подібне, але я в ідеалі сподівався на більш компактне зображення, яке розміщує значення для обох груп уздовж однієї осі, а не ортогональних осей.
ali_m

1
Дивлячись на ваш сюжет розсіювання, я бачу, що ви втрачаєте багато інформації в центрі своєї "чорнильної плями". Вам потрібно щось зробити, застосувавши перетворення (логарифм?) Або запропоновану карту хитів, яку я пропоную.
Дірк Хорстен

Вибачте! Ваша пропозиція цілком розумна - я просто не зробив достатньо хорошої роботи, щоб пояснити, що я шукаю. Так, двовимірний сюжет (розсіювання, теплова карта, контурний графік тощо) зробив би гарну роботу в представленні щільності точок вибірки, але я думаю, що це більше інформації, ніж мені дійсно потрібно відображати. Все, що мені потрібно зробити, це показати, що значення для "барів", як правило, вище, ніж значення для "крапок". Я шукаю найпростіший можливий спосіб показати це, зберігаючи парний характер даних.
ali_m

Невже діагональ на сюжетному графіку не вказує напрямок досить добре?
Дірк Хорстен

Ні, але, мабуть, у мене є необгрунтовані очікування :-)
ali_m
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.