したがって、Trials、Ind. Variable、Observation を持つ 3 列のデータ フレームがあります。何かのようなもの:
df1<- data.frame(Trial=rep(1:10,5), Variable=rep(1:5, each=10), Observation=rnorm(1:50))
95% conf をプロットしようとしています。次のようにかなり非効率的な方法を使用して、各試行の平均の周りの間隔:
b<-NULL
b$mean<- aggregate(Observation~Variable, data=df1,mean)[,2]
b$sd <- aggregate(Observation~Variable, data=df1,sd)[,2]
b$Variable<- df1$Variable
b$Observation <- df1$Observation
b$ucl <- rep(qnorm(.975, mean=b$mean, sd=b$sd), each=10)
b$lcl <- rep(qnorm(.025, mean=b$mean, sd=b$sd), each=10)
b<- as.data.frame(b)
c <- ggplot(b, aes(Variable, Observation))
c + geom_point(color="red") +
geom_smooth(aes(ymin = lcl, ymax = ucl), data=b, stat="summary", fun.y="mean")
これは、ymin、ymax の値が重複するため非効率的です。geom_ribbon メソッドを見てきましたが、まだ複製する必要があります。ただし、glm などのスムージングを使用していた場合、コードははるかに単純になり、重複がなくなります。これを行うより良い方法はありますか?
参考文献: 1. ggplot を使用した R 信頼帯のプロット 2. ggplot2を使用した信頼区間の手動シェーディング 3. http://docs.ggplot2.org/current/geom_smooth.html