Як можна уявити взаємозв'язок між 3 категоричними змінними?


21

У мене є набір даних з трьома категоричними змінними, і я хочу візуалізувати взаємозв'язок між усіма трьома в одному графіку. Будь-які ідеї?

В даний час я використовую наступні три графіки: введіть тут опис зображення

Кожен графік відповідає рівню депресії базового рівня (легкий, помірний, сильний). Потім у кожному графіку я розглядаю залежність між лікуванням (0,1) та поліпшенням депресії (немає, помірне, суттєве).

Ці 3 графіки працюють, щоб побачити тристоронній зв'язок, але чи відомий спосіб це зробити за допомогою одного графіка?


4
Опублікування даних дозволить людям грати.
Нік Кокс

1
У вас є 3 базові категорії, 2 категорії лікування та 3 результати депресії. З огляду на останнє. пропорції кожного типу депресії можуть відображатися 6 точками на трикутному (трилінійному, потрійному) графіку.
Нік Кокс

4
Що не так з цими графіками?
Аксакал

Чи можете ви надати дані, як @NickCox запитує? Я збираю це лише 18 чисел.
gung - Відновити Моніку

Відповіді:


12

Це цікавий набір даних, який потрібно спробувати зобразити графічно, почасти тому, що це не зовсім категорично. Обидва фактор 3 рівня є порядковим і є можлива взаємодія між ними (імовірно, це важче для mild baselineмати substantial improvement- або , може бути , substantial improvementзначить , що - то інше для кожного baseline).

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

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

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

Я зазвичай насторожено ставляюся до складання, оскільки важче читати середні значення, але це повторно застосовує фіксовану суму цих даних. І це дозволяє легко прочитати суму moderate+ substantialякщо це актуально. Я перевернув порядок improvementрівнів, щоб вище було краще для частоти.

Без укладання еквівалент є графіком нахилу.

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

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

Враховуючи порядковий характер даних, може бути корисним перетворити improvementзначення в числовий бал, як це часто робиться з даними Лікерта . Так , наприклад, none=0, moderate=1, substantial=2. Тоді ви можете графікувати цю змінну безперервно. Мінус полягає в тому, що ви повинні знайти розумний бал (наприклад, можливо, 0, 1 і 5 були б реальними уявленнями).

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

Колофон : Ці сюжети були зроблені за допомогою функції Graph Builder у пакеті програм JMP (який я допомагаю розробити). Хоча сценарій, створений інтерактивно, наприклад, для ділянки ділянки, без налаштування забарвлення, це:

Graph Builder(
    Graph Spacing( 15 ),
    Variables( X( :treatment ), Y( :frequency ),
        Group X( :baseline ), Overlay( :improvement )
    ),
    Elements( Area( X, Y ) )
);

2
+1. Деякі чудові ідеї тут. Багато чого, хоч я і дуже важко ставляться до укладання, я думаю, що перший графік працює найкраще. Це виявляє цікаву взаємодію: лікування 1 завжди призводить до значного покращення, і більше нічого!
Нік Кокс

Чудовий пост. Чи все-таки можна створити 1-й графік, який відображається в R? Я не використовував JMP деякий час.
Алехандро Очоа

1
@AlejandroOchoa ggplot має територіальний геом. Див. Розділ Створення графічної ділянки зі складеними ділянками за допомогою ggplot2 .
xan

10

По-перше, ось моє читання з наведеного графіка даних для тих, хто бажає пограти (експериментуйте, якщо хочете). Примітка: Помилки один за одним, безумовно, можливі, як і грубі помилки.

    improvement  treatment   baseline   frequency  
           none          0       mild          5  
       moderate          0       mild         41  
    substantial          0       mild          4  
           none          1       mild         19  
       moderate          1       mild         19  
    substantial          1       mild         12  
           none          0   moderate         19  
       moderate          0   moderate         24  
    substantial          0   moderate          7  
           none          1   moderate         20  
       moderate          1   moderate         14  
    substantial          1   moderate         16  
           none          0     severe          7  
       moderate          0     severe         21  
    substantial          0     severe         22  
           none          1     severe         12  
       moderate          1     severe         15  
    substantial          1     severe         23  

Ось переробка оригінального дизайну. Одна деталь оригінальних даних робить прості речі: кількість людей у ​​кожній комбінації прогнозів однакова, тому графіки частоти та відсоткові відсотки однакові. Тут замість складеної (підрозділеної, сегментованої) смугової діаграми ми відокремлюємо бари у двосторонній гістограмі або дизайні таблиці сюжету.

Значна частина деталей у графіці - це саме та деталь. Кілька невеликих недоліків у графіку можуть підірвати його ефективність, а також можуть допомогти кілька невеликих вдосконалень.

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

Щоб прописати це:

  1. Тут не потрібні три панелі з їх повторенням осями, легендою та текстом.

  2. Легенда - це завжди прокляття, а також благословення, зобов’язуючи читача подумки рухатися "туди-сюди" (або запам'ятовувати легенду, а не те, що приваблює, як би просто не було). Інформаційний текст прямо за смужками простіше дотримуватися.

  3. Колір фруктового салату не потрібен. Це теж здається довільним: «суттєве» поліпшення - це велика справа, але я вважаю навіть сильний жовтий приглушеним кольором. Але нам не потрібен колір, коли у нас є текст для пояснення.

  4. Хоча деякі будуть кричати від жаху, порушуючи відмінність між Фігурою та Таблицею, ми також можемо показати частоти. Корисно мати можливість думати "4 людини в цій категорії".

  5. Тут вшановується традиційне планування відповіді на вертикальній осі, як і в оригіналі.

Все, що сказано, важко помітити велику структуру в цих даних. Коли це так, важко також поділити провину між (a) даними без особливої ​​структури та (b) слабкими сторонами графічного дизайну для вибору не тільки прогнозних ефектів, але й можливих взаємодій. Лікування здається менш важливим, ніж вихідний стан. Але тоді, якщо базовий рівень був "м'яким", скільки можливостей було для "значного" поліпшення? Я зупинюсь там, щоб перестати дурити себе, коли вивчення даних про психічне здоров'я, безумовно, не є спеціалізацією, особливо якщо дані виявляються фальшивими. Але якщо вони справжні, ми могли б зробити набагато більший розмір вибірки. (Ми зазвичай це говоримо, але ви йдете.)

EDIT Графік, природно, може бути ускладнений порядковою кольоровою гамою, якщо це бажано:

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

Для запису: графіки використовували код Stata, включаючи мою власну програму, яку можна tabplotзавантажити ssc inst tabplot.

tabplot improvement group [w=frequency] , showval ///
xmla(1.5 "mild" 3.5 "moderate" 5.5 "severe", noticks labgap(*4) labsize(medsmall)) ///
xla(1 "0" 2 "1" 3 "0" 4 "1" 5 "0" 6 "1") ///
xtitle(baseline and treatment) xsc(titlegap(*4)) bfcolor(emerald*0.2)

tabplot improvement group [w=frequency] , showval ///
xmla(1.5 "mild" 3.5 "moderate" 5.5 "severe", noticks labgap(*4) labsize(medsmall)) ///
xla(1 "0" 2 "1" 3 "0" 4 "1" 5 "0" 6 "1") ///
xtitle(baseline and treatment) xsc(titlegap(*2)) ///
sep(improvement2) bar3(bfcolor(emerald*0.2)) bar2(bfcolor(emerald*0.6)) ///
bar1(bfcolor(emerald)) barall(blcolor(green)) 

Чи все-таки ви можете завантажити свій графік із кольоровою схемою, яка відображає порядковий характер даних? Також яке програмне забезпечення ви використовували для створення візуального?
Алехандро Очоа

Це дуже вродливі сюжети
тіньтакер

4

Мені подобається використовувати дворівневу вісь x для подібних даних. Отже, вашими категоріями осі x для одного діаграми можуть бути:

  • Лікування = 0, вихідне значення = легке
  • Лікування = 0, Базова лінія = Помірне
  • Лікування = 0, Базова лінія = Тяжке
  • Лікування = 1, вихідна = легка
  • Лікування = 1, Базова лінія = Помірне
  • Лікування = 1, Базова лінія = Тяжке

... з однаковими підрахунками за категоріями [відсутні / помірні / суттєві] гістограми.


+1. Я згоден з основною ідеєю тут, реалізованою у моїй відповіді. Я не можу сказати, наскільки близький мій дизайн діаграми близький до того, що ви уявляли.
Нік Кокс

Дякую, ваша діаграма виглядає чудово. Чи намагалися ви розглядати це як Лікування 0/1 як зовнішню категорію, а Базова лінія = Легка / Помірна / Серйозна як категорія, ближча до осі x? Я думаю, якби ви представили це таким чином, ви побачили б чіткішу схему - оскільки в рамках лікування = 0, "значні" поліпшення поліпшення постійно зростають, коли базовий рівень збільшується від "Помірний / Помірний / Сильний". І щоб ви бачили той самий малюнок (меншою мірою) в рамках лікування = 1. Взагалі я розміщую змінну з меншою кількістю категорій (наприклад, тут лікування) зовні. Але, можливо, ви вже так дивилися на це.
Макс. Потужність

Я не намагався іншим способом, але мав на увазі, що дослідник, можливо, найбільше захоче порівняти ефекти лікування з даними базового рівня, що має бути простішим, як я це робив.
Нік Кокс

Це для мене має сенс.
Макс. Потужність

4

Чи не мозаїчний сюжет спеціально призначений для цієї мети?

У R це було б як

library(vcd)
d = read.table("data.dat", header=TRUE)
tab = xtabs(frequency ~ treatment+baseline+improvement, data=d)
mosaic(data=tab,~ treatment+baseline+improvement, shade=TRUE, cex=2.5)

Кожна категоріальна змінна переходить на один край квадрата, який підрозділяється його мітками. (Таким чином, якщо підрозділити кожен край лише на одному рівні, можна представити не більше 4 категоричних змінних. ІМХО, понад 3, це стає безладним і складніше інтерпретувати). Розмір прямокутників пропорційний частоті. Це головна ідея мозаїчного сюжету, і вона однакова в цій відповіді та відповіді Павела Клеки.

Відмінності полягають у макетах цих прямокутників та "смакотах", що надаються певним пакетом R, використовуваним для цього типу сюжету. Як видно з відповіді Paweł Kleka, graphicsпакет розділяє верхній край на 2 рівні замість того, щоб використовувати правий край. я використавvcd пакет з опціями за замовчуванням, так що колір вказує на ступінь асоціації між змінними. Сірий означає, що дані відповідають (не можна відкинути гіпотезу) змінної незалежності. Синій означає, що позитивна асоціація існує між "важкою" базовою лінією та "істотним" поліпшенням як для лікування "0", так і для "1". (Сюрприз, сюрприз! Я перекладаю це так: якщо у вас сильна депресія, ви, швидше за все, поправитесь, лікуєтесь ви чи ні.

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

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

Якщо ви порівнюєте мою картину з малюнком у відповіді Павела Клека, не має значення, що "лікування" знаходиться в лівій частині кожної картини. Ви можете легко змінити місце розташування краю, змінивши останній рядок мого коду та відрегулювавши макет відповідно до своїх потреб. Поширена практика полягає в тому, що зліва йде найважливіша змінна або змінна з найменшою кількістю міток. Ви також можете змінити порядок міток (наприклад, так, що на правому краї замовлення «немає стримати істотним»), зробивши відповідний змінний фактор в R упорядкованих і регулюючи його рівні.


На момент написання двох відповідей на мозаїчні сюжети є. Було б корисно, якби кожен з вас розширив те, що показує ваш сюжет, і чому він корисний, не в останню чергу тому, що сюжети зовсім інші.
Нік Кокс

@NickCox цей, безумовно, виглядає відмінно від інших. Вони навряд чи однакові
shadowtalker

Вони обоє мають обробку на осі y. Що б було золотом у їхніх прихильників - це коментар щодо переваг та обмежень кожного дисплея.
Нік Кокс

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

@Nick Cox Дякуємо за ваші коментарі. Це було єдине, що мотивувало мене розширюватися. Я не пробував інших можливостей. Власне, я думаю, якщо автор питання вважає такий тип сюжету корисним, він повинен спробувати все, а потім опублікувати та пояснити результати для спільноти. До речі, я не кажу, що цей тип сюжету кращий за інші. Справа в тому, що вона була спеціально розроблена для категоричних змінних та для візуалізації незалежності та / або порушення незалежності.
lanenok

3

Я рекомендую використовувати сюжет мозаїки

mosaicplot(table(moz), sort = c(3,1,2), color = T)

mosaicplot ()


На момент написання двох відповідей на мозаїчні сюжети є. Було б корисно, якби кожен з вас розширив те, що показує ваш сюжет, і чому він корисний, не в останню чергу тому, що сюжети зовсім інші.
Нік Кокс

2

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

Ось приклад із даними виживання "Титанік":

Ось приклад з даними виживання "Титаніка".

У R (з урахуванням ваших тегів) я використовував ggparallel для його реалізації. Деякі люди обговорювали тут на CV, як їх реалізувати іншими способами.


У мене виникають труднощі уявити це. Будь-який шанс, що ти зможеш насмішити приклад?
shadowtalker

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

2

Інформацію також можна передати за допомогою наступної простої лінійної діаграми:

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

Поліпшення показано за різними типами ліній, тоді як основна група показана кольорами. Ці та параметр осі x (обробка тут) також можуть бути замінені за бажанням.


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