Какая визуализация лучше всего подходит для таблиц сопряженности?


22

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

Изменить: Или, как @forecaster предлагает в комментариях, таблица чисел сама по себе простой график и должно быть достаточно.


4
Иногда таблица данных является лучшим методом визуализации по сравнению с графиками. Таблицы непредвиденных обстоятельств - классический пример этого.
прогнозист

1
Важный момент, хотя я не согласен с тем, что это всегда лучший вариант.
рпсо

1
Вот почему я сказал «иногда». Я бы порекомендовал Стивена Фьюса Покажите мне цифры, в которых есть целый раздел, посвященный таблицам.
прогнозист

1
Что ж, лучший метод зависит от того, что вы хотите показать, насколько велика таблица, без каких-либо подробностей это для широкого!
kjetil b halvorsen

3
Большая часть stats.stackexchange.com/questions/56322/… здесь кажется уместной .
Ник Кокс

Ответы:


9

Здесь не будет единого решения для всех. Если у вас очень простая таблица (например, 2×2 ), лучше всего просто представить ее. Если вам нужна фактическая фигура, мозаичные графики (как подсказывает @xan) - это, пожалуй, хорошее место для начала. Есть некоторые другие варианты, которые аналогичны мозаичным графикам, включая ситовые, ассоциативные и динамические графики давления (см. Мой вопрос здесь: Альтернатива ситовым / мозаичным графикам для таблиц сопряженности ); Книга Майкла Френдли « Визуализация категориальных данных» была бы хорошим (на основе SAS) ресурсом по этой теме, а пакет vcd - хорошим ресурсом для реализации этих идей в R.

Однако, поскольку таблицы содержат большее количество строк и столбцов, их, на мой взгляд, становится все труднее использовать. Другой вариант визуализации - выполнить / построить анализ соответствия . Анализ соответствия аналогичен выполнению анализа главных компонентов как для строк, так и для столбцов таблицы сопряженности. Затем оба строятся вместе с биплотом. Вот пример на основе R с использованием данных из ответа @ xan:

library(ca)
tab = as.table(rbind(c(28, 4,  0, 56),
                     c(38, 5,  9, 10),
                     c( 6, 6, 14, 13) ))
names(dimnames(tab)) = c("activity", "period")
rownames(tab)        = c("feed", "social", "travel")
colnames(tab)        = c("morning", "noon", "afternoon", "evening")
tab
#         period
# activity morning noon afternoon evening
#   feed        28    4         0      56
#   social      38    5         9      10
#   travel       6    6        14      13
plot(ca(tab))

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

Чтобы интерпретировать этот график, чем ближе две точки одного типа, тем более похожи эти два профиля строки / столбца. И чем ближе две точки разных типов, тем больше их вероятностная масса в ячейке, представляющей их пересечение.

В R есть пакет ca ; эта виньетка ( pdf ) также может быть полезна.


Очень полезный. По-видимому, происходит сбой при небольших значениях, например: tt = with (mtcars, table (factor (gear), factor (vs))); участок (ок (тт)); Ошибка в x [, dim]: нижний индекс за пределами
rnso

Это потому, что один из факторов (то есть factor(vs)) имеет только два уровня; тебе нужно как минимум три. Попробуй ttt = with(mtcars, table(factor(gear), factor(cyl))); plot(ca(ttt)).
gung - Восстановить Монику

Очень хорошее отображение отношений между разными факторами.
15:00

Или вы можете показать таблицу после переупорядочивания строк и столбцов в порядке оценок анализа соответствия.
kjetil b halvorsen

Интересная идея, @kjetilbhalvorsen. Я не уверен, как получить это от caобъекта, поэтому я написал его с нуля. Если я не ошибся, вы измените порядок строк c(1,3,2)и столбцов c(4,1,3,2). Сделав это, я не уверен, что я должен увидеть здесь. Что у тебя на уме?
gung - Восстановить Монику

11

Различные визуальные эффекты будут лучше при выделении различных функций, но графики Mosaic хорошо работают для общего вида (проверка того, выделяется ли что-нибудь). Может быть, это то, что вы имели в виду под уклоненным сюжетом. Как и большинство вариантов, они не симметричны в том смысле, что они представляют относительные частоты лучше в одном измерении, чем в другом. Приятной особенностью является то, что предельные частоты также представлены.

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

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


Это хорошо. Обе цифры и пропорции представлены. Номера также могут быть нанесены на сюжет. Если порядок элементов по оси X упорядочен, он будет выглядеть еще лучше. Уклоняясь, я имел в виду общий барплот с категориями рядом, а не сложенными друг на друга (см. Position = 'dodge' на этой странице: r-bloggers.com/using-r-barplot-with-ggplot2 ).
rnso

1
+1 Этот дизайн часто работает очень хорошо для относительно простых данных ; и наоборот, я обнаружил, что о более сложных данных быстро становится трудно думать, несмотря на то, что в литературе делается большой акцент на его расширяемость для таблиц сопряженности произвольной размерности. Тем не менее, ни один дизайн не работает хорошо ни в таких обстоятельствах. Небольшой момент в этом примере заключается в том, что вы, по-видимому, приняли алфавитный порядок по умолчанию «день» ... «полдень», предложенный вашей программой, тогда как сохранение порядка времени кажется более естественным выбором.
Ник Кокс

8

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

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

Сначала пример, охватывающий те же данные, что и xan:

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

Если имя требуется, как это часто бывает, это двухсторонняя диаграмма (в данном случае). Я не буду каталогизировать другие термины здесь, за исключением того, что множественный BarChart является одной из распространенных альтернатив с похожим вкусом. (Мое маленькое возражение против «множественного столбца» состоит в том, что «множественный» не исключает очень распространенных гистограмм с накоплением или рядом друг с другом, тогда как «twoway» для меня более четко подразумевает расположение строк и столбцов, хотя в свою очередь это может привести примеры, чтобы прояснить это.)

Плюсы и минусы для этого вида сюжета также просты, но я изложу некоторые из них. Поскольку мне нравится этот дизайн (который восходит по крайней мере к 1930-м годам), другие могут захотеть добавить более резкую критику.

+1. Идея легко понятна даже нетехническим группам. Высота полос или длины полос в этом примере кодируют частоты. В других примерах они могут кодировать проценты, рассчитанные любым способом, остатки и т. Д.

+2. Структура строк и столбцов соответствует структуре таблицы . Вы можете добавить числовые значения тоже. Очень малые количества и даже неявные нули отчетливо видны, что не всегда имеет место с другими проектами (например, гистограммы с накоплением, мозаичные графики). Маркировка строк и столбцов обычно более эффективна, чем добавление ключа или легенды, с ментальным «туда-сюда», который требуется. Таким образом, этот дизайн объединяет идеи графиков и таблиц, что, похоже, беспокоит некоторых читателей; и наоборот, я бы сказал, что сильные различия между рисунками и таблицами - это просто историческое похмелье, устарело теперь, когда исследователи могут готовить свои собственные документы и не должны полагаться на дизайнеров, композиторов и принтеров.

+3. Расширение до трехстороннего и более высокого дизайна в принципе легко . Поместите две или более переменных в качестве составных переменных на одну или обе оси или укажите массив таких графиков. Естественно, чем сложнее дизайн, тем сложнее интерпретация.

+4. Конструкция явно допускает порядковые переменные на любой оси. Порядок может быть выражен (например) путем соответствующего затенения, а также порядка категорий на этой оси. Порядок категорий по осям может быть определен по их значению или лучше определен по частотам; алфавитный порядок в соответствии с текстовыми метками может быть по умолчанию, но никогда не должен рассматриваться как единственный выбор.

-1. Будучи общим в дизайне, сюжет может быть менее эффективным, показывая некоторые виды отношений . В частности, мозаичный сюжет может очень четко обозначить отклонения от независимости. И наоборот, когда отношения между категориальными переменными являются сложными или неясными, то, как правило, ни один график не может показать больше, чем этот слабый факт.

-2. В некоторых отношениях дизайн неэффективен в использовании пространства , оставляя место для каждой перекрестной комбинации независимо от того, часто ли это происходит или происходит. Это порок того же принципа, который считается добродетелью. Конкретный дизайн над категориями пространств одинаково независимо от их частоты; жертвуя этим, часто жертвую читаемыми маргинальными надписями, которые я очень ценю. В этом примере все текстовые метки бывают очень короткими, но это далеко не типично.

Примечание: данные xan кажутся просто выдуманными, поэтому я не буду пытаться интерпретировать их больше, чем в других ответах. Но немного домашней мудрости заслуживает последнего слова: лучший дизайн для вас - это тот, который лучше всего передает вам и вашим читателям структуру некоторых реальных данных, которые вам небезразличны.

Другие примеры включают

Как вы можете визуализировать отношения между 3 категориальными переменными?

График отношений между двумя порядковыми переменными


1
+1 для другого жизнеспособного варианта и отличного обсуждения. Позвольте мне задать вопрос о двухсторонних диаграммах / указать на еще один возможный недостаток: есть немаркированная, но четко воспринимаемая «коробка», внутри которой могут быть нанесены столбцы. Когда планка приближается к вершине коробки, она достигает 100%. Как определяется это значение? (Примечание: таблицы сопряженности всегда являются в некотором смысле полиномиальными, с известной общей суммой.) Создание сумм в верхних строчках строк или столбцов приведет к разным выводам восприятия. (По-видимому, таблица не используется, так как многие столбцы были бы слишком малы, чтобы их можно было дифференцировать.)
gung - Восстановить Монику

1
@ Gung Спасибо. Я могу прокомментировать мою собственную программу Stata, которая используется здесь и в моих примерах в других местах CV. Программа tabplotот SSC. Высота стержней обязательно составляет некоторую долю высоты самого высокого или самого длинного стержня; пространство, доступное для этого, определяется количеством отображаемых строк. Пользователь может переопределить размер зазора по умолчанию, но затем рискует, что бары соприкасаются или перекрывают друг друга. Если бары могут быть как негативными, так и позитивными, все не так просто. Я полагаю, что такое же ограничение касается любой другой программы. Короче говоря, не соприкасающиеся бары подразумевают пробел!
Ник Кокс

8

Чтобы дополнить ответы @ gung's и @ xan, вот пример использования мозаики и графиков ассоциации vcdв R.

> tab
        period
activity morning noon afternoon evening
  feed        28    4         0      56
  social      38    5         9      10
  travel       6    6        14      13

Чтобы получить участки:

require(vcd)
mosaic(tab, shade=T, legend=T)
assoc(tab, shade=T, legend=T)

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

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

Оба интуитивно представляют отклонения от ожидаемых частот ... По умолчанию это модель взаимной независимости , но ее можно изменить (например, на совместную независимость, если есть переменная отклика) через expectedаргумент.

Смотрите также:

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