Сложенные столбцы, как правило, хорошо понимаются статистиками, если их осторожно представить. Полезно масштабировать их по общему метрику (например, 0-100%), с постепенным цветом для каждой категории, если они являются порядковыми (например, Лайкерт). Я предпочитаю точечную диаграмму (точечный график Кливленда), когда не слишком много предметов и не более 3-5 категорий ответов. Но это действительно вопрос визуальной ясности. Я обычно предоставляю%, поскольку это стандартизированная мера, и сообщаю только% и подсчеты с диаграммой без суммирования. Вот пример того, что я имею в виду:
data(Environment, package="ltm")
Environment[sample(1:nrow(Environment), 10),1] <- NA
na.count <- apply(Environment, 2, function(x) sum(is.na(x)))
tab <- apply(Environment, 2, table)/
apply(apply(Environment, 2, table), 2, sum)*100
dotchart(tab, xlim=c(0,100), xlab="Frequency (%)",
sub=paste("N", nrow(Environment), sep="="))
text(100, c(2,7,12,17,22,27), rev(na.count), cex=.8)
mtext("# NA", side=3, line=0, at=100, cex=.8)
Лучшего рендеринга можно достичь с помощью lattice
или ggplot2
. Все элементы имеют одинаковые категории ответов в этом конкретном примере, но в более общем случае мы можем ожидать разные, так что показ всех из них не будет казаться избыточным, как в данном случае. Однако можно было бы придать одинаковый цвет каждой категории ответов, чтобы облегчить чтение.
Но я бы сказал, что составные столбцы лучше, когда все элементы имеют одинаковую категорию ответов, так как они помогают оценить частоту одного способа ответа между элементами:
Я также могу подумать о какой-то тепловой карте, которая полезна, если есть много предметов с похожей категорией ответов.
Следует сообщать об отсутствующих ответах (особенно если они незначительны или локализованы на конкретный элемент / вопрос), в идеале для каждого элемента. Как правило,% ответов для каждой категории рассчитываются без NA. Это то, что обычно делается в опросе или психометрии (мы говорим о «выраженных или наблюдаемых ответах»).
PS
Я могу думать о более необычных вещей , как на картинке показано ниже (первая была сделана вручную, второй из ggplot2
, ggfluctuation(as.table(tab))
), но я не думаю , что это передать в качестве точной информации dotplot или столбиковых , поскольку поверхностные вариации трудно оценить.