다음 시나리오는 플롯 생성자로 조사자 (I), 검토 자 / 편집자 (CRAN과 관련이없는 R) 및 나 (M)의 트리오에서 가장 자주 묻는 질문이되었습니다. 우리는 (R)이 전형적인 의료 대장 검토 자라고 가정 할 수 있으며, 각 플롯에는 오류 막대가 있어야한다는 것을 알고 있어야합니다. 그렇지 않으면 잘못됩니다. 통계 검토자가 참여하면 문제는 훨씬 덜 중요합니다.
대본
전형적인 약리학 적 교차 연구에서, 두 가지 약물 A와 B가 포도당 수준에 미치는 영향에 대해 테스트되었습니다. 각 환자는 이월이 없다는 가정하에 무작위 순서로 두 번 검사됩니다. 1 차 평가 변수는 포도당 (BA)의 차이이며, 쌍을 이루는 t- 검정이 적합하다고 가정합니다.
(I) 두 경우 모두 절대 포도당 수준을 보여주는 도표를 원합니다. 그는 오차 막대에 대한 (R)의 욕구를 두려워하고 막대 그래프에서 표준 오차를 요구합니다. 여기서 막대 그래프 전쟁을 시작하지 않겠습니다. _)
(I) : 사실이 아닙니다. 막대가 겹치면 p = 0.03? 그것은 내가 고등학교에서 배운 것이 아닙니다.
(M) : 여기 쌍 디자인이 있습니다. 요청 된 오차 막대는 전혀 관련이 없으며 쌍으로 된 차이의 SE / CI는 몇 개입니까? 플롯에는 표시되지 않습니다. 선택할 수 있고 데이터가 너무 많지 않으면 다음 그림을 선호합니다.
추가 1 : 이것은 여러 응답에서 언급 된 평행 좌표 플롯입니다
(M) : 선이 짝을 나타내고 대부분의 선이 올라가면 경사가 중요하기 때문에 올바른 인상입니다.
(I) : 그 사진은 혼란 스럽다. 아무도 그것을 이해하지 못하며 오류 막대가 없습니다 (R은 숨어 있습니다).
(M) : 차이의 관련 신뢰 구간을 보여주는 다른 그림을 추가 할 수도 있습니다. 제로 라인으로부터의 거리는 효과 크기의 인상을줍니다.
(I) : 아무도하지 않는다
(R) : 귀중한 나무를 낭비합니다
(M) : (좋은 독일어로서) : 그렇습니다. 나무 위의 점이 찍 힙니다. 그럼에도 불구하고 우리는 여러 치료와 대조가있을 때 이것을 사용하고 게시하지 않습니다.
어떤 제안 ? 플롯을 만들려면 R 코드가 아래에 있습니다.
# 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()