首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ggplot2中的四分位数范围

ggplot2中的四分位数范围
EN

Stack Overflow用户
提问于 2015-02-10 16:16:44
回答 3查看 7.4K关注 0票数 4
代码语言:javascript
运行
复制
set.seed(42)
DF <- data.frame(bias=rnorm(2700),cnd=1:27)
DF$cnd <- factor(DF$cnd)

试图理解median_hilow在ggplot中的使用。我希望找到一种方法来绘制上下四分位数的范围。但我在任何地方都找不到“fun.data=median_hilow”的完整解释。尽管我认为它做的是对的。该函数是否有任何完整的文档来检查它是如何绘制IQR的?

代码语言:javascript
运行
复制
library(ggplot2)
ggplot(DF,aes(x=cnd,y=bias,colour=cnd)) + 
  stat_summary(fun.data=median_hilow)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-10 16:33:48

median_hilow只是smedian_hilow的包装器,它来自于Hmisc包。

从来自smean / smedianHmisc函数组的文档。

如下面@BondedDust的评论所示,您需要在前面安装包Hmisc

(输入?smedian_hilow?median_hilow):

提供了一些统计汇总函数,以便与summary.formula和汇总一起使用(以及tapply和它们自己)。smean.cl.normal计算了3个汇总变量:样本均值和基于t分布的上、下高斯置信限。smean.sd计算平均值和标准差。smean.sdl计算平均值加减一个常量乘以标准差。smean.cl.boot是一种快速实现的基本非参数自举,用于在不设正态的情况下获得种群均值的置信限。这些函数都会自动删除NAs。smedian.hilow计算样本中值和具有相等尾部区域的选定的一对外部分位数。

smedian.hilow根据置信区间计算中值、下四分位数和上四分位数。例如:

代码语言:javascript
运行
复制
x <- rnorm(100)

> smedian.hilow(x, conf.int=.5)  # 25th and 75th percentiles
     Median       Lower       Upper 
 0.02036472 -0.76198947  0.71190404 

您可以查看@BondedDust关于如何使用ggplot2函数实现这个问题的答案。

票数 5
EN

Stack Overflow用户

发布于 2015-02-10 17:20:50

如果您想要IQR,那么您就不需要median_hilow,至少它的默认值是这样的,因为它将低值作为2.5个百分位数,而高值作为97.5个百分位数。(伊拉克数量将分别为25和75)

代码语言:javascript
运行
复制
> smedian.hilow(1:100)
Median  Lower  Upper 
50.500  3.475 97.525 

您可以使用0.5的conf.int-parameter以这种方式将-parameter传递给Hmisc::smedian.hilow-function,这将为您提供四分位数范围,因为(如Hmisc帮助页面所述):" smedian.hilow computes the sample median and a selected pair of outer quantiles having equal tail areas."

代码语言:javascript
运行
复制
ggplot(DF,aes(x=cnd,y=bias,colour=cnd)) + 
   stat_summary(fun.data=median_hilow, conf.int=.5)
票数 5
EN

Stack Overflow用户

发布于 2015-02-10 16:24:21

想一想,通过这样做,我可以与证明它所做的一切的结果相匹配:

代码语言:javascript
运行
复制
library(plyr)
 iqr <- function(x, ...) {
     qs <- quantile(as.numeric(x), probs = c(0.25, 0.75), na.rm = TRUE)
     names(qs) <- c("ymin","ymax")
     qs
 }
 ddply(DF, .(cnd), summarise, new = iqr(bias))

但是这个例子突出了impot,conf.int参数是至关重要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28436467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档