【问题标题】:Why is the third quartile less than the mean in my data?为什么我的数据中的第三个四分位数小于平均值?
【发布时间】:2012-11-24 04:35:01
【问题描述】:

我将一个名为 gob 的数据集加载到 R 中并尝试了方便的 summary 函数。请注意,第三个四分位数小于平均值。怎么会这样?是我的数据大小还是其他类似的东西?

我已经尝试为数字参数传递一个较大的值(例如 10),但这并不能解决问题。

> summary(gob, digits=10)

   customer_id         100101.D            100199.D            100201.D        
 Min.   :   1083   Min.   :0.0000000   Min.   :0.0000000   Min.   :0.0000000  
 1st Qu.: 965928   1st Qu.:0.0000000   1st Qu.:0.0000000   1st Qu.:0.0000000  
 Median :2448738   Median :0.0000000   Median :0.0000000   Median :0.0000000  
 Mean   :2660101   Mean   :0.0010027   Mean   :0.0013348   Mean   :0.0000878  
 3rd Qu.:4133368   3rd Qu.:0.0000000   3rd Qu.:0.0000000   3rd Qu.:0.0000000  
 Max.   :6538193   Max.   :1.0000000   Max.   :1.0000000   Max.   :0.7520278  

请注意,对于 gob$100201.D,平均值为 0.0000878,但第三个 Qu。 = 0。

【问题讨论】:

  • 请注意,quartiles 只是将您的样本除以数字,而不是除以值。
  • 最好为您的问题使用更具描述性的标题,这实际上是“为什么在 R 中使用 summary() 时我的第三个四分位数有时低于我的平均值?” (此时,这对Cross Validated 来说更像是一个问题)。 SO 并不是发布可能错误报告的地方。发布您的问题,如果它确实是一个错误,希望它被注意到并修复。有关示例,请参阅stackoverflow.com/a/10588698/1270695。该问题没有提及错误,但包维护者将其识别为错误并在其所属的位置提交了错误报告。
  • 答案显示,这不是R 问题。

标签: r data-science mean quartile


【解决方案1】:

第三个分位数可能低于平均值。它不是最高值的 75%,而是从最低到最高排序时向量计数的 75% 处的值。换句话说:

Vector <- c(0,0,0,0,0,0,0,1)
mean(Vector)
[1] 0.125
quantile(Vector, 0.75)
[1] 0

为了找到第三个分位数,R 将所有数据从最低到最高排序,然后选择最接近该向量长度的 75% 的值。所以基本上:

3rdQuar = Vector[round(length(Vector)*0.75)]

(请注意,如果它落在两个整数之间,R 实际上会平均这两个数字。但这是基本思想)

【讨论】:

  • 为了明确说明,不仅R,任何分位数软件都会这样做,因为它是术语的定义。
【解决方案2】:

这不是错误,只是您的数据包含很多 0 值。例如,如果我用 12 个 0 和 1 个 1 组成 x,我得到的结果是第 3 个四分位数小于平均值

 x<-c(0,0,0,0,0,0,0,0,0,0,0,0,1)
summary(x)

  Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.00000 0.00000 0.00000 0.07692 0.00000 1.00000 

尝试在列上使用 table() 来查看值的分布

table(x)
 x
 0  1 
 12  1 

【讨论】:

  • 您现在需要通过单击对勾来接受 Didzis 的回答。顺便说一句,这类似于说大多数人的腿数高于平均水平的逻辑......
猜你喜欢
  • 2017-05-21
  • 2020-07-04
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 2020-08-07
相关资源
最近更新 更多