【发布时间】:2015-02-16 04:46:57
【问题描述】:
考虑来自标准数据集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 中已经实现的功能)?如果不是,您能否确认我的解决方案是正确的?
【问题讨论】:
-
奇怪的是,只有 5 个观察值,
gear==5的置信区间最窄。 -
哦,你确实是对的。我意识到我在“我的解决方案”中犯了一个错误。
samplesize对于所有组都是平等的。我现在改了。谢谢!你现在觉得它正确吗?你知道更好的解决方案吗?
标签: r ggplot2 statistics data.table variance