Какой график подходит для иллюстрации взаимосвязи между двумя порядковыми переменными?
Несколько вариантов, которые я могу придумать:
- Разброс графиков с добавлением случайного дрожания, чтобы точки, скрывающие друг друга По-видимому, стандартная графика - Minitab называет это «графиком отдельных значений». На мой взгляд, это может вводить в заблуждение, поскольку визуально способствует некоторой линейной интерполяции между порядковыми уровнями, как если бы данные были получены из интервальной шкалы.
- Диаграмма рассеивания адаптирована таким образом, что размер (площадь) точки представляет частоту этой комбинации уровней, а не рисует одну точку для каждой единицы выборки. Я иногда видел такие сюжеты на практике. Их может быть трудно прочитать, но точки лежат на равномерно распределенной решетке, что несколько преодолевает критику графика разбросанного рассеяния, который визуально «разбивает» данные.
- В частности, если одна из переменных рассматривается как зависимая, блок-график группируется по уровням независимой переменной. Вероятно, выглядит ужасно, если число уровней зависимой переменной недостаточно велико (очень «плоско» с отсутствующими усами или, что еще хуже, сжимающимися квартилями, что делает визуальную идентификацию медианы невозможной), но, по крайней мере, привлекает внимание к медиане и квартилям, которые соответствующая описательная статистика для порядковой переменной.
- Таблица значений или пустая сетка ячеек с тепловой картой для указания частоты. Визуально отличается, но концептуально похож на график рассеяния с точечной областью, показывающей частоту.
Есть ли другие идеи или мысли о том, какие участки предпочтительнее? Существуют ли области исследований, в которых определенные порядковые-против-порядковые графики считаются стандартными? (Кажется, я вспоминаю частотную тепловую карту, широко распространенную в геномике, но подозреваю, что это чаще всего для номинального-против-номинального.) Предложения для хорошего эталонного эталона также были бы очень желательны, я предполагаю кое-что от Агрести.
Если кто-то захочет проиллюстрировать сюжет, используйте R-код для поддельных образцов данных.
"Насколько важно упражнение для вас?" 1 = совсем не важно, 2 = несколько неважно, 3 = ни важно, ни неважно, 4 = несколько важно, 5 = очень важно.
"Как часто вы занимаетесь бегом 10 минут или дольше?" 1 = никогда, 2 = менее одного раза в две недели, 3 = один раз в одну или две недели, 4 = два или три раза в неделю, 5 = четыре или более раз в неделю.
Если было бы естественно трактовать «часто» как зависимую переменную, а «важность» - как независимую переменную, если график различает эти две.
importance <- rep(1:5, times = c(30, 42, 75, 93, 60))
often <- c(rep(1:5, times = c(15, 07, 04, 03, 01)), #n=30, importance 1
rep(1:5, times = c(10, 14, 12, 03, 03)), #n=42, importance 2
rep(1:5, times = c(12, 23, 20, 13, 07)), #n=75, importance 3
rep(1:5, times = c(16, 14, 20, 30, 13)), #n=93, importance 4
rep(1:5, times = c(12, 06, 11, 17, 14))) #n=60, importance 5
running.df <- data.frame(importance, often)
cor.test(often, importance, method = "kendall") #positive concordance
plot(running.df) #currently useless
Связанный вопрос для непрерывных переменных я нашел полезным, может быть, полезной отправной точкой: каковы альтернативы диаграмм рассеяния при изучении взаимосвязи между двумя числовыми переменными?
Ответы:
Spineplot (мозаичный график) работает хорошо для данных примера здесь, но может быть трудным для чтения или интерпретации, если некоторые комбинации категорий редки или не существуют. Естественно, вполне разумно и ожидаемо, что низкая частота представлена маленькой плиткой, а ноль - вообще никакой, но психологическая трудность может остаться. Также естественно, что люди, которые любят спайнплоты, выбирают примеры, которые хорошо подходят для их бумаг или презентаций, но я часто приводил примеры, которые были слишком грязными, чтобы их можно было публично использовать. С другой стороны, спинной участок хорошо использует доступное пространство.
Некоторые реализации предполагают интерактивную графику, чтобы пользователь мог опрашивать каждую плитку, чтобы узнать о ней больше.
Альтернатива, которая также может работать достаточно хорошо, - это двусторонняя гистограмма (существует много других названий).
Смотрите, например,
tabplot
в http://www.surveydesign.com.au/tipsusergraphs.htmlДля этих данных одним из возможных графиков (созданных с использованием
tabplot
Stata, но должно быть легко в любом приличном программном обеспечении) являетсяФормат означает, что легко связать отдельные столбцы с идентификаторами строк и столбцов и что вы можете аннотировать с частотами, пропорциями или процентами (не делайте этого, если вы думаете, что результат слишком занят, естественно).
Некоторые возможности:
Если одна переменная может рассматриваться как реакция на другую как предиктор, то стоит подумать о том, чтобы отобразить ее на вертикальной оси как обычно. Здесь я думаю о «важности» как об измерении отношения, тогда возникает вопрос, влияет ли оно на поведение («часто»). Причинная проблема часто более сложна даже для этих мнимых данных, но суть остается.
Предложение № 1 всегда должно быть превзойдено, если обратное работает лучше, то есть легче думать и интерпретировать.
Процент или вероятность разбивки часто имеют смысл. График необработанных частот тоже может быть полезен. (Естественно, на этом графике отсутствуют мозаичные графики, показывающие оба вида информации одновременно.)
Конечно, вы можете попробовать (гораздо более распространенные) альтернативы сгруппированных гистограмм или гистограмм с накоплением (или все еще довольно необычные сгруппированные точечные диаграммы в смысле WS Cleveland). В этом случае я не думаю, что они работают так же хорошо, но иногда они работают лучше.
Некоторые могут по-разному раскрасить разные категории ответов. У меня нет возражений, и если вы захотите, вы не будете серьезно относиться к возражениям.
Стратегия скрещивания графиков и таблиц может быть полезна в более общем смысле или даже вовсе не то, что вам нужно. Часто повторяемый аргумент заключается в том, что разделение рисунков и таблиц было лишь побочным эффектом изобретения печати и разделения труда, которое она произвела; это опять же не нужно, так же, как это было для писателей рукописей, которые делали иллюстрации, как и где им понравилось.
источник
Вот быстрая попытка составить тепловую карту , я использовал черные ячейки, чтобы разбить ячейки, но, возможно, плитки должны быть разделены больше, как в ответе Glen_b.
Вот график флуктуаций, основанный на более раннем комментарии Энди У. Как он их описывает, «они в основном представляют собой просто диаграммы рассеяния для категориальных данных, а размер точки сопоставляется с количеством наблюдений, которые попадают в этот интервал». Для справки см.
источник
Вот пример того, как будет выглядеть spineplot данных. Я сделал это в Stata довольно быстро, но есть реализация R . Я думаю, что в R это должно быть просто:
spineplot(factor(often)~factor(importance))
Spineplot фактически кажется по умолчанию, если вы зададите R категориальных переменных:
plot(factor(often)~factor(importance))
Дробная разбивка категорий часто показана для каждой категории важности. Сложенные столбцы нарисованы с вертикальным измерением, показывающим долю часто данной категории важности. Горизонтальное измерение показывает долю в каждой категории важности. Таким образом, области мозаичных элементов представляют частоты или, в более общем случае, итоговые значения для каждой перекрестной комбинации важности и часто.
источник
То, как я это сделал, немного выдумка, но это можно исправить довольно легко.
Это модифицированная версия метода дрожания.
Удаление осей уменьшает искушение интерпретировать масштаб как непрерывный; Рисование рамок вокруг перемешанных комбинаций подчеркивает, что существует нечто вроде «разрыва шкалы» - что интервалы не обязательно равны
В идеале, метки 1..5 должны быть заменены названиями категорий, но я пока оставлю это для воображения; Я думаю, что это передает смысл этого.
Возможные уточнения:
i) сделать перерывы меньше (лично я предпочитаю больше перерывов, чем это), и
ii) попытка использовать квазислучайную последовательность, чтобы уменьшить частоту видимого паттерна внутри блоков. Хотя моя попытка несколько помогла, вы можете видеть, что в ячейках с меньшим числом точек все еще есть подпоследовательности с более или менее коррелированным видом (например, поле в верхнем ряду, 2-й столбец). Чтобы избежать этого, квазислучайная последовательность может быть инициализирована для каждого субблока. (Альтернативой может быть выборка из латинского гиперкуба.) После того, как это будет отсортировано, его можно вставить в функцию, которая работает точно так же, как и джиттер.
источник
Используя пакет R-реки:
источник
Другая идея, о которой я изначально не думал, была сито .
Размер каждой плитки пропорционален ожидаемой частоте; маленькие квадраты внутри прямоугольников представляют реальные частоты. Следовательно, большая плотность квадратов указывает на более высокую, чем ожидалось, частоту (и закрашена синим цветом); меньшая плотность квадратов (красный) для частоты ниже ожидаемой.
Я думаю, я бы предпочел, чтобы цвет представлял собой размер, а не просто знак остатка. Это особенно верно для краевых случаев, когда ожидаемые и наблюдаемые частоты похожи, а остаток близок к нулю; дихотомическая красно-синяя схема, кажется, переоценивает небольшие отклонения.
Реализация в R:
источник
Столбчатая гистограмма в R. Она очень четко показывает распределение «часто» на каждом уровне «важности». Но это не сработало бы так хорошо, если бы максимальное количество варьировалось больше между уровнями «важности»; это достаточно просто установить
scales="free_y"
в ggplot ( см. здесь ), чтобы избежать большого количества пустого пространства, но форму распределения будет трудно различить на низкочастотных уровнях «важности», поскольку столбцы будут очень маленькими. Возможно, в этих ситуациях лучше использовать относительную частоту (условную вероятность) на вертикальной оси.Он не такой «чистый», как табулатура в Stata, с которой связывался Ник Кокс, но передает аналогичную информацию.
Код R:
источник