首页 > 解决方案 > R 箱线图,已计算均值、置信区间和最小值最大值

问题描述

我正在尝试使用已经计算的置信区间以及最小值和最大值在 R 中生成箱线图。对于时间 1、2、3、4、5(x 轴),我有 MN 表示 5 个元素的数组,每个元素描述时间点的平均值。我还有 CI1、CI2、MINIM 和 MAXM,每个元素都是 5 个元素的数组,每个时间步一个,分别代表上 CI、下 CI、最小值和最大值。我想在每个时间步生成 5 个箱线图。

我已经尝试过通常的箱线图功能,但我可以让它与已经计算的 CI 和最小最大值一起工作。

如果该方法适用于正常的绘图功能,那就太好了,尽管 ggplot 也可以。

标签: rplotboxplotconfidence-interval

解决方案


由于您尚未发布数据,我将使用内置iris数据集,保留前 4 列。

data(iris)
iris2 <- iris[-5]

该函数boxplot计算它使用的统计数据,然后调用bxp进行打印,将这些计算值传递给它。
如果您想要一组不同的统计数据,您将不得不计算它们并将它们bxp手动传递给它们。

我假设 CI 是指正常的 95% 置信区间。为此,您需要先计算标准误差和平均值。

s <- apply(iris2, 2, sd)
mn <- colMeans(iris2)
ci1 <- mn - qnorm(0.95)*s
ci2 <- mn + qnorm(0.95)*s
minm <- apply(iris2, 2, min)
maxm <- apply(iris2, 2, max)

现在已经boxplot创建了bxpa使用的数据结构matrix

bp <- boxplot(iris2, plot = FALSE)

并用之前计算的值填充矩阵。

bp$stats <- matrix(c(
  minm,
  ci1,
  mn,
  ci2,
  maxm
), nrow = 5, byrow = TRUE)

最后,绘制它。

bxp(bp)

推荐阅读