O cenário a seguir se tornou o FAQ mais freqüente do trio de investigador (I), revisor / editor (R, não relacionado ao CRAN) e eu (M) como criador de plotagem. Podemos supor que (R) é o típico revisor médico do chefão, que sabe apenas que cada parcela deve ter uma barra de erro; caso contrário, ela está errada. Quando um revisor estatístico está envolvido, os problemas são muito menos críticos.
Cenário
Em um típico estudo farmacológico cruzado, dois medicamentos A e B são testados quanto ao seu efeito no nível de glicose. Cada paciente é testado duas vezes em ordem aleatória e sob a suposição de que não haja transporte. O endpoint primário é a diferença entre glicose (BA), e assumimos que um teste t pareado é adequado.
(I) quer um gráfico que mostre os níveis absolutos de glicose nos dois casos. Ele teme (R) o desejo de barras de erro e pede erros padrão nos gráficos de barras. Não vamos começar a guerra dos gráficos de barras aqui.
(I): Isso não pode ser verdade. As barras se sobrepõem e temos p = 0,03? Não foi isso que aprendi no ensino médio.
(M): Temos um design emparelhado aqui. As barras de erro solicitadas são totalmente irrelevantes, o que conta é o SE / CI das diferenças emparelhadas, que não são mostradas no gráfico. Se eu tivesse uma escolha e não houvesse muitos dados, eu preferiria o seguinte gráfico
Adicionado 1: este é o gráfico de coordenadas paralelas mencionado em várias respostas
(M): As linhas mostram o emparelhamento e a maioria das linhas sobe, e essa é a impressão certa, porque a inclinação é o que conta (ok, isso é categórico, mas mesmo assim).
(I): Essa imagem é confusa. Ninguém entende isso e não possui barras de erro (R está à espreita).
(M): Também podemos adicionar outro gráfico que mostre o intervalo de confiança relevante da diferença. A distância da linha zero dá uma impressão do tamanho do efeito.
(I): Ninguém faz
(R): E desperdiça árvores preciosas
(M): (Como um bom alemão): Sim, é preciso apontar as árvores. No entanto, eu uso isso (e nunca o publico) quando temos vários tratamentos e múltiplos contrastes.
Alguma sugestão ? O código R está abaixo, se você deseja criar um gráfico.
# Graphics for Crossover experiments
library(ggplot2)
library(plyr)
theme_set(theme_bw()+theme(panel.margin=grid::unit(0,"lines")))
n = 20
effect = 5
set.seed(4711)
glu0 = rnorm(n,120,30)
glu1 = glu0 + rnorm(n,effect,7)
dt = data.frame(patient = rep(paste0("P",10:(9+n))),
treatment = rep(c("A","B"), each=n),glucose = c(glu0,glu1))
dt1 = ddply(dt,.(treatment), function(x){
data.frame(glucose = mean(x$glucose), se = sqrt(var(x$glucose)/nrow(x)) )})
tt = t.test(glucose~treatment,paired=TRUE,data=dt,conf.int=TRUE)
dt2 = data.frame(diff = -tt$estimate,low=-tt$conf.int[2], up=-tt$conf.int[1])
p = paste("p =",signif(tt$p.value,2))
png(height=300,width=300)
ggplot(dt1, aes(x=treatment, y=glucose, fill=treatment))+
geom_bar(stat="identity")+
geom_errorbar(aes(ymin=glucose-se, ymax=glucose+se),size=1., width=0.3)+
geom_text(aes(1.5,150),label=p,size=6)
ggplot(dt,aes(x=treatment,y=glucose, group=patient))+ylim(0,190)+
geom_line()+geom_point(size=4.5)+
geom_text(aes(1.5,60),label=p,size=6)
ggplot(dt2,aes(x="",y=diff))+
geom_errorbar(aes(ymin=low,ymax=up),size=1.5,width=0.2)+
geom_text(aes(1,-0.8),label=p,size=6)+
ylab("95% CI of difference glucose B-A")+ ylim(-10,10)+
theme(panel.border=element_blank(), panel.grid.major.x=element_blank(),
panel.grid.major.y=element_line(size=1,colour="grey88"))
dev.off()