Складені барчарти, як правило, добре розуміються нестатистами, за умови їх обережного введення. Корисно масштабувати їх за загальною метрикою (наприклад, 0-100%) з поступовим кольором для кожної категорії, якщо вони є порядковим пунктом (наприклад, Likert). Я віддаю перевагу крапковій схемі (точці Клівленда), коли не надто багато предметів і не більше 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))
), але я не думаю, що він передає таку точну інформацію, як точкова планка чи діаграма, оскільки зміни поверхні важко цінувати.