bud*_*ong 5 r boxplot iqr violin-plot
理论上,vioplot包的小提琴图是盒图+密度函数.
在"boxplot部分"中,
黑匣子对应于IQR(实际上,见下文),和
中线应该对应相同的范围(相邻值,默认值为1.5 IQR),但不是(见下文).任何人都可以解释为什么他们不同?
require("vioplot")
a = rnorm(100)
range (a)
a = c(a,2,8,2.9,3,4, -3, -5) # add some outliers
par ( mfrow = c(1,2))
boxplot(a, range=1.5)
vioplot(a, range=1.5 )
Run Code Online (Sandbox Code Playgroud)上面提到:
Hintze,JL和RD Nelson(1998).小提琴图:箱形图 - 密度跟踪协同作用.美国统计学家,52(2):181-4.
让我用一个简单的例子来说明这一点:
b <- c(1:10, 20)
par(mfrow = c(1,2))
boxplot(b, range=1.5)
vioplot(b, range=1.5 )
Run Code Online (Sandbox Code Playgroud)
R 箱线图的定义是(借用ggplot关于该主题的帮助):
上部须线从铰链延伸到铰链 1.5 * IQR 范围内的最高值,其中 IQR 是四分位数范围,或第一四分位数和第三四分位数之间的距离。
浏览vioplot的源代码upper[i] <- min(q3[i] + range*iqd, data.max)
,我们看到。
因此,让我们尝试重现上须值:
# vioplot draws
quantile(b, 0.75) + 1.5 * IQR(b)
# 16
# boxplot draws
max(b[b <= quantile(b, 0.75) + 1.5 * IQR(b)])
# 10
Run Code Online (Sandbox Code Playgroud)