考虑标准数据集mtcars
中的变量gear
和qsec
。
require(ggplot2)
ggplot(mtcars, aes(x=gear, y=qsec)) + geom_point()
我想要绘制每个组的内部方差,并带有误差线。
这是我目前的解决方案(使用95%置信区间来绘制误差线):
require(data.table)
dtmtcars = data.table(mtcars)[,list(var.qsec = var(qsec)),by=list(gear)]
samplesize = sapply(unique(mtcars$gear), function(x) nrow(subset(mtcars, gear == x)))
high.EB = ((samplesize-1)*dtmtcars$var.qsec)/qchisq(0.025,n-1)
low.EB = ((samplesize-1)*dtmtcars$var.qsec)/qchisq(0.975,n-1)
ggplot(dtmtcars, aes(x=gear, y=var.qsec)) + geom_point() + geom_errorbar(aes(ymin=low.EB, ymax=high.EB))
有没有更简单的解决方案(比如ggplot2
中已经实现的函数)?如果没有,能否确认我的解决方案是正确的?
gear==5
具有最窄的置信区间。 - Khashaasamplesize
对所有组都是相等的。现在我已经更改了它。谢谢!现在它看起来正确吗?你知道更好的解决方案吗? - Remi.b