【问题标题】:How to compare the distributions of two vectors in R?如何比较R中两个向量的分布?
【发布时间】:2015-08-28 00:21:09
【问题描述】:

这是我的数据集的截图:

内容如下:假设您在一家快递公司工作,但由于某种原因,包裹未能交付给客户。返回的包裹数量的分布根据包裹的货币价值而变化,包裹的货币价值是数据集(Levels)的第一个变量。因此,B 列代表公司上个月销售的所有包裹的分布,按包裹的价值分组。最后一列 C 表示由于某些标准(例如危险社区)而未能交付的包裹的分布情况。

我想直观地表明,这个特定标准非常重要,以至于它改变了数据的分布。我使用 Excel 从原始数据中计算出这些百分比,因为我不允许在工作中安装 R。

我通过一些数据整理完成了以下情节,但我想如果我知道如何做,我可以做得更好:

编辑:我被告知要发布数据集的 dput 版本:

structure(list(Levels = structure(c(6L, 11L, 12L, 13L, 1L, 2L, 
3L, 4L, 5L, 7L, 8L, 9L, 10L), .Label = c("Less than $1000", "Less than $1200", 
"Less than $1400", "Less than $1600", "Less than $1800", "Less than $200", 
"Less than $2000", "Less than $2200", "Less than $2400", "Less than $2600", 
"Less than $400", "Less than $600", "Less than $800"), class = "factor"), 
    X.ofTotal = c(0.3802, 0.2475, 0.1218, 0.0664, 0.0409, 0.0247, 
    0.0178, 0.016, 0.0099, 0.0109, 0.0061, 0.0063, 0.0063), X..ofTotalWithSomeCriteria = c(0.6087, 
    0.1957, 0.0652, 0.0435, 0, 0.0217, 0, 0, 0.0435, 0.0217, 
    0, 0, 0)), .Names = c("Levels", "X.ofTotal", "X..ofTotalWithSomeCriteria"
), class = "data.frame", row.names = c(NA, -13L))
> 

【问题讨论】:

  • 您即将被关闭,因为您提出了一个模糊的问题并且没有很好地说明它。如果你先尝试一些东西,你会得到更多的回应,提供带有一些数据和代码的minimal working example,并询问哪里出了问题。另请参阅this。 (Variables 是什么?这是一个时间序列吗?类别?就目前而言,您的问题的答案是“它取决于 (tm)”,因为您没有的东西太多了与我们分享。)
  • 对不起@r2evans,我想我无法解释我想要什么,因为我的英语不流利。我会尝试添加更多细节并打开一个新线程。
  • 如果是同一个问题,不要打开新线程,只需编辑这个问题。英语流利对我们中的许多人来说很好,但你肯定不是第一个。提供一个简单的例子,给我们一些数据(阅读我上面提到的链接,也许使用dput),然后从那里开始。如果您可以使示例问题更小,请不要向我们提供所有数据。
  • 如果您尝试直观地对变量进行成对比较,?pairs 可能是一个有用的通用函数。
  • 不要发布截图。按照@r2evans 的建议使用dput

标签: python r distribution kernel-density


【解决方案1】:

我将绘制经验累积分布函数。这是有道理的,因为这两个函数的比较也是 Kolmogorov-Smirnov 检验两个分布差异显着性的基础。

至少有两个选项可以在 R 中绘制这些函数:

plot(ecdf(data$X.ofTotal),col="green",xlim=c(0,1),verticals = TRUE,main = "")
par(new=TRUE)
plot(ecdf(data$X..ofTotalWithSomeCriteria ),col="red",xlim=c(0,1),verticals = TRUE,main = "")

require( Hmisc )
l <- length(data$X..ofTotalWithSomeCriteria )
dataset <- c(rep("Total",l), rep("Criteria", l))  
Ecdf(c(data$X.ofTotal, data$X..ofTotalWithSomeCriteria ), group=dataset, col=c('blue', 'red'))

【讨论】:

  • 那么问题得到解答了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
相关资源
最近更新 更多