У меня есть 82 респондента в 2 группах (43 в группе A и 39 в группе B), которые завершили опрос по 65 вопросов Лайкерта, каждый в диапазоне от 1 до 5 (полностью согласен - категорически не согласен). Поэтому у меня есть фрейм данных с 66 столбцами (1 для каждого вопроса + 1, указывающий на распределение групп) и 82 строками (1 для каждого респондента).
Используя R или SPSS кто-нибудь знает хороший способ визуализации этих данных.
Мне нужно что-то вроде этого:
(от Джейсона Брайера )
Но я не могу заставить начальный раздел кода работать. Кроме того, я нашел действительно хорошие примеры того, как визуализировать данные Лайкерта из предыдущего поста с перекрестной проверкой: Визуализация данных отклика элемента Лайкерта, но нет руководств или инструкций о том, как создавать эти графики с центрированным счетчиком или составные столбцы с использованием R или SPSS.
Ответы:
Если вы действительно хотите использовать составные столбцы с таким большим количеством элементов, вот два возможных решения.
С помощью
irutils
Я столкнулся с этим пакетом несколько месяцев назад.
Начиная с комита 0573195c07 на Github , код не будет работать с
grouping=
аргументом. Давайте пойдем на сессию отладки в пятницу.Начните с загрузки заархивированной версии с Github. Вам нужно взломать
R/likert.R
файл, в частностиlikert
иplot.likert
функции. Сначала используется inlikert
,cast()
ноreshape
пакет никогда не загружается (хотяimport(reshape)
вNAMESPACE
файле есть инструкция ). Вы можете загрузить это самостоятельно заранее. Во- вторых, есть неправильная инструкция для получения элементов этикетки, гдеi
болтается вокруг линии 175. Это должен быть закреплен , а также, например , путем замены всех вхожденийlikert$items[,i]
сlikert$items[,1]
. Затем вы можете установить пакет так, как вы привыкли делать на вашем компьютере. На моем Mac я сделалЗатем с помощью R попробуйте следующее:
Это должно сработать, но визуальный рендеринг будет ужасным из-за большого количества элементов. Это работает без группировки (например,
plot(likert(resp))
), хотя.Таким образом, я бы предложил сократить ваш набор данных до меньших подмножеств элементов. Например, используя 12 предметов,
Я получаю «читабельную» составную диаграмму. Вы можете, вероятно, обработать их потом. (Это
ggplot2
объекты, но вы не сможете разместить их на одной страницеgridExtra::grid.arrange()
из-за проблем с читабельностью!)Альтернативное решение
Я хотел бы обратить ваше внимание на другой пакет, HH , который позволяет изображать шкалы Лайкерта как расходящиеся столбчатые диаграммы. Мы могли бы использовать вышеуказанный код, как показано ниже:
но это немного усложнит ситуацию, потому что нам нужно преобразовать частоты в счетчики, задать подмножество
likert
объекта, созданного с помощьюirutils
, отсоединить пакет и т. д. Итак, давайте начнем снова со свежей статистики (счетчиков):Чтобы использовать группирующую переменную, вам нужно работать с
array
числовыми значениями.Это создаст две отдельные панели, но умещается на одной странице.
Редактировать 2016-6-3
источник
HH::as.pyramidLikert
.t(apply(resp, 2, table))
наt(apply(resp, 2, table))[,levels(resp[,1])]
. И +1 тебе тоже!Я начал писать пост в блоге о воссоздании многих диаграмм в посте, который вы упомянули ( Визуализация данных ответа Лайкерта ) в SPSS, поэтому я полагаю, что это будет хорошей мотивацией для его завершения.
Как отмечает Мишель, тот факт, что у вас есть группы, является новым поворотом по сравнению с предыдущими вопросами. И хотя группы могут учитываться с помощью гистограмм с накоплением, IMO их гораздо легче включить в пример точечного графика в исходном посте chl. Я включил код SPSS для генерации этого в конце поста, по сути, он подразумевает знание того, как изменить ваши данные в соответствующий формат для генерации указанного графика (аннотация, предоставленная в коде, надеюсь, прояснит некоторые из них). Здесь я использовал некоторую избыточную кодировку (цвет и форму), чтобы различать точки, приходящие от двух групп, и сделал точки полупрозрачными, чтобы вы могли определить, когда они перекрываются (другой вариант - уклоняться от точек, когда они перекрываются).
Почему это лучше, чем гистограммы с накоплением? Гистограммы с накоплением кодируют информацию в длину столбцов. Когда вы пытаетесь провести сравнение между длинами стержней, либо в пределах одной категории осей, либо между панелями, наложение препятствует тому, чтобы стержни имели общий масштаб. В качестве примера я привел изображение на рис. 2, на котором два графика расположены на графике, на котором их начальное расположение отличается, какой столбец является более широким (вдоль горизонтальной оси)?
Сравните это с графиком на рисунке 3 ниже, на котором два столбца (одинаковой длины) построены с одной и той же начальной точки. Я намеренно усложнил задачу, но вы должны сказать, какая из них длиннее.
Сложенные столбчатые диаграммы по сути делают то, что показано на рисунке 2. Точечные графики можно считать более похожими на те, что показаны на рисунке 3, просто замените столбец точкой на конец столбца.
Я не собираюсь говорить, не генерируйте какую-либо конкретную диаграмму для анализа поисковых данных, но я бы предложил избегать гистограмм с накоплением при использовании такого количества категорий. Точечные графики также не являются панацеей, но я считаю, что сравнивать панели с точечными графиками гораздо проще, чем с помощью гистограмм с накоплением. Подумайте над некоторыми советами, которые я даю в своем блоге здесь, для таблиц, попробуйте упорядочить и / или разделить диаграммы на значимые категории, и убедитесь, что элементы, которые вы хотите просмотреть в тандеме, находятся ближе друг к другу в диаграммах. Хотя некоторые из методов построения графика могут хорошо масштабироваться на многие вопросы (например, категориальные тепловые карты), без сортировки все равно будет трудно определить какие-либо значимые закономерности (помимо очевидных выбросов).
Примечание по использованию SPSS. SPSS может генерировать любую из предыдущих ссылок, связанных с диаграммами, хотя это часто подразумевает знание того, как формировать ваши данные (то же самое верно и для ggplot, но люди разрабатывают пакеты, чтобы по сути сделать изменение формы за вас). Чтобы понять, как лучше работает язык GPL в SPSS, я бы предложил почитать книгу Хэдли Уикхема на ggplot2.в использовании R! серии. В нем изложена грамматика, необходимая для понимания работы GPL в SPSS, и ее гораздо легче прочитать, чем руководство по программированию GPL, поставляемое с SPSS! Если у вас есть какие-либо вопросы о создании конкретных диаграмм в SPSS, было бы лучше задать один вопрос для одной диаграммы (я уже достаточно обговорил здесь!), Я обновлю этот ответ ссылкой, хотя, если когда-нибудь смогу сделать свой сообщение в блоге, копирующее некоторые другие диаграммы. Для доказательства концепции тепловых карт или графиков колебаний вы можете увидеть еще одну мою запись в блоге, Некоторые примеры Corrgrams в SPSS .
Код SPSS, использованный для генерации рисунка 1
источник
О, хорошо, я придумал код, прежде чем вы пояснили. Должен был подождать, но подумал, что я должен опубликовать это, чтобы любой, кто приходит сюда, мог повторно использовать этот код
Фиктивные данные для визуализации
Код для тепловой карты
Это в основном шаблон для визуализации предметов Лайкерта на тепловой карте с сайта Джейсона Брайона.
источник
Код @ RJ создает такой график, который на самом деле представляет собой таблицу с затененными ячейками. Это довольно занят и немного сложно расшифровать. Простая таблица без затенения может быть более эффективной (и вы также можете разместить данные в более значимом порядке).
Конечно, это зависит от того, какое главное сообщение вы пытаетесь передать, но я думаю, что это проще и немного легче понять. Он также содержит вопросы и ответы в (в основном!) Логическом порядке.
источник