【问题标题】:Combining medcouple in ggplot's boxplot在ggplot的箱线图中结合medcouple
【发布时间】:2014-05-16 22:03:13
【问题描述】:

ggplot 的箱线图将 [Q1 - 1.5 * IQR, Q3 + 1.5 * IQR] 范围之外的任何点呈现为异常值。正如R blog 中所讨论的,这并不总是一个好主意,因为 由于分布不对称,可能会报告错误的异常值。在这种情况下,通常建议使用来自 robustbase R 包的 adjbox。然而,质量 剧情不如ggplot2。

我的问题是:有人知道如何组合使用的指数模型 在检测异常值时被ggplot使用的adjbox中?

【问题讨论】:

    标签: r robust ggplot2


    【解决方案1】:

    您可能必须自己提供这些值。参考adjbox()帮助文件中使用的示例:

    library(robustbase)
    if(require("boot")) {
      ### Hubert and Vandervieren (2006), p. 10, Fig. 4.
      data(coal, package = "boot")
      coaldiff <- diff(coal$date)
      op <- par(mfrow = c(1,2))
      boxplot(coaldiff, main = "Original Boxplot")
      adjbox(coaldiff, main  = "Adjusted Boxplot")
      par(op)
    }
    

    这会产生以下箱线图:

    然后就可以得到adjbox()函数使用的值了:

    coald <- data.frame(coaldiff = diff(coal$date))  #$
    adjboxStats(coald$coaldiff)$stats
    # [1] 0.0000000 0.1013005 0.3107461 0.7529090 3.7180014
    

    这些是用于绘制调整后的箱线图的值。您可以将此信息提供给ggplot(),然后计算您自己的箱线图。可能有更好的方法可以做到这一点,但我想到的第一件事是制作一个新的数据集,包括调整后的箱线图值:

    library(ggplot2)
    library(plyr)
    d <- ddply(coald, .(coaldiff), transform,
      ymin = adjboxStats(coald$coaldiff)$stats[1],
      ymax = adjboxStats(coald$coaldiff)$stats[5],
      middle = adjboxStats(coald$coaldiff)$stats[3],
      lower = adjboxStats(coald$coaldiff)$stats[2],
      upper = adjboxStats(coald$coaldiff)$stats[4])
    
    # Boxplot with unadjusted values:
    p <- ggplot(d, aes(factor(1), coaldiff)) 
    p + geom_boxplot()
    
    # Boxplot with adjusted values (note that you have to add the outliers back in):
    p + geom_boxplot(aes(ymin=ymin, ymax=ymax, middle=middle, upper=upper, lower=lower),
      stat="identity") + 
      geom_point(data=subset(d, coaldiff < ymin | coaldiff > ymax))
    

    这将为您提供上述图的ggplot2 版本:

    另请注意,Hadley Wickham 在response 中对类似问题提出了“不加思索”的建议。

    【讨论】:

      猜你喜欢
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      相关资源
      最近更新 更多