如何修改箱形图的缺口错误?

时间:2014-03-05 11:12:29

标签: r

我在boxplot中包含了以下代码中的缺口:

> boxplot(dframe1$High.calcium..diet, dframe1$Low.calcium.diet,         # The basic boxplot command
+ varwidth = FALSE,                        # width of boxes represents sample size
+ notch = TRUE,                           # add a notch indicating 95% confidence intervals
+ names = c("High Calcium diet", "Low Calcium diet"),                     # labels the different boxes
+ col=c("violet", "light green"),          # colours the different boxes
+ xlab = "Diet",                  # adds an x-axis label
+ ylab = "parathyroid hormone per 100 ml blood",      # adds a y-axis label
+ cex.lab = 1.6,                          # adjusts the size of the axis labels
+ cex.axis = 1.3,                         # adjusts the size of the axis numbering
+ las = 1)
Warning message:
In bxp(list(stats = c(12.7, 14.4, 16.2, 18.25, 23.1, 15.1, 40.2,  :
  some notches went outside hinges ('box'): maybe set notch=FALSE
> 

但是,我收到上述警告,但我不想将notch设置为FALSE,因为我想要这些缺口。我该如何解决这个问题?

这是随之而来的数据:

High calcium  diet  Low calcium diet
14.5    52.7
18.2    44.4
15  125
14.3    66.4
25.7    23.3
17.3    88.3
23.1    38.8
16.2    42.9
12.7    15.1
18.3    41.6
13.2    53.2

1 个答案:

答案 0 :(得分:5)

这意味着置信区间(即凹口的大小)大于四分位距(IQR)。缩放的大小取决于您的数据:+/-1.58 IQR/sqrt(n)请参阅?boxplot.stats

如果您采用更大的样本(增加n),则凹槽的大小可能会减小。

您还可以决定绘制没有切口的箱形图,并手动将标记添加到置信区间。

创建没有缺口的boxplot:

boxplot(dframe1, notch=F, ylim=c(0,125))

检索数据框中两列的置信区间:

ci_high = boxplot.stats(dframe1[,1], do.conf=T)$conf
ci_low  = boxplot.stats(dframe1[,2], do.conf=T)$conf

将这些添加到剧情:

points(x=c(1,1), y=ci_high, col=2, pch=8)    
points(x=c(2,2), y=ci_low, col=2, pch=8)