分散分析結果の可視化例
よく指導法の効果の検証っていうような目的でこんなグラフを見る。
これ,カーネルとか使ってこんな感じでいいじゃない?
名前なんていうかわからんけど。
これパッケージにしたら需要あるんだろうか?
流行ったらいいな。
または,これでもいいな。
library(ks) group<-c(rep("A",40),rep("B",40)) set.seed(1) pre<-round(c(rnorm(40,50,8),rnorm(40,50,8)),0) post<-round(c(rnorm(40,50,8),rnorm(40,80,8)),0) delayed<-round(c(rnorm(40,40,8),rnorm(40,70,8)),0) dat<-data.frame(group,pre,post,delayed) #繰り返しとかめんどくなってしまったからクソ汚い k.pre.a<-kde(dat[dat[,1]=="A",2]) k.post.a<-kde(dat[dat[,1]=="A",3]) k.delayed.a<-kde(dat[dat[,1]=="A",4]) k.pre.b<-kde(dat[dat[,1]=="B",2]) k.post.b<-kde(dat[dat[,1]=="B",3]) k.delayed.b<-kde(dat[dat[,1]=="B",4]) m.a<-apply(dat[dat[,1]=="A",-1],2,mean) m.b<-apply(dat[dat[,1]=="B",-1],2,mean) plot(0, xlim=c(0,100), ylim=c(0.4,3.4), axes=F, type="n", xlab="Score", ylab="Time") axis(2,1:3, c("Delayed","Post","Pre")) axis(1) abline(h=1:3, lty=2) polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.pre.a)+3, col="lightblue") polygon(seq(0,100,.1), -7*dkde(seq(0,100,.1), k.pre.b)+3, col="orange") polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.post.a)+2, col="lightblue") polygon(seq(0,100,.1), -7*dkde(seq(0,100,.1), k.post.b)+2, col="orange") polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.delayed.a)+1, col="lightblue") polygon(seq(0,100,.1), -7*dkde(seq(0,100,.1), k.delayed.b)+1, col="orange") legend("bottomleft", legend=c("Control","Treatment"), pch=20, col=c("lightblue","orange"), box.lty=0) lines(m.a,c(3.05,2.05,1.05), type="b", lty=2, pch=20) lines(m.b,c(3-.05,2-.05,1-.05), type="b", lty=2, pch=20) plot(0, xlim=c(0,100), ylim=c(0.4,3.4), axes=F, type="n", xlab="Score", ylab="Time") axis(2,1:3, c("Delayed","Post","Pre")) axis(1) abline(h=1:3, lty=2) polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.pre.a)+3, col=rgb(0,0,1,alpha=.2)) polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.pre.b)+3, col=rgb(1,1,0,alpha=.2)) polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.post.a)+2, col=rgb(0,0,1,alpha=.2)) polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.post.b)+2, col=rgb(1,1,0,alpha=.2)) polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.delayed.a)+1, col=rgb(0,0,1,alpha=.2)) polygon(seq(0,100,.1), 7*dkde(seq(0,100,.1), k.delayed.b)+1, col=rgb(1,1,0,alpha=.2)) legend("bottomleft", legend=c("Control","Treatment"), pch=20, col=c(rgb(0,0,1,alpha=.2),rgb(1,1,0,alpha=.2)), box.lty=0, bg="gray98") lines(m.a, c(3,2,1), type="b", lty=2, pch=20) lines(m.b, c(3,2,1), type="b", lty=2, pch=20)