如何比较 R 中两个向量的分布?
How to compare the distributions of two vectors in R?
这是我的数据集的屏幕截图:
内容如下:假设您在一家快递公司工作,由于某种原因,包裹未能送达客户。退回包裹数量的分布根据包裹的货币价值而变化,这是数据集(级别)的第一个变量。因此,B 列代表公司上个月销售的所有包裹的分布情况,按包裹价值分组。最后一列 C 表示由于某些条件(例如,危险的社区)而未能交付的包裹的分布。
我想直观地展示的是,这个特定的标准非常重要,它改变了数据的分布。我使用 Excel 从原始数据计算这些百分比,因为我不允许在工作中安装 R。
我通过一些数据整理完成了下面的情节,但我想如果我知道怎么做我可以做得更好:
编辑:有人告诉我 post 数据集的 dput 版本:
structure(list(Levels = structure(c(6L, 11L, 12L, 13L, 1L, 2L,
3L, 4L, 5L, 7L, 8L, 9L, 10L), .Label = c("Less than 00", "Less than 00",
"Less than 00", "Less than 00", "Less than 00", "Less than 0",
"Less than 00", "Less than 00", "Less than 00", "Less than 00",
"Less than 0", "Less than 0", "Less than 0"), 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))
>
我会绘制经验累积分布函数。这是有道理的,因为这两个函数的比较也是 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'))
这是我的数据集的屏幕截图:
内容如下:假设您在一家快递公司工作,由于某种原因,包裹未能送达客户。退回包裹数量的分布根据包裹的货币价值而变化,这是数据集(级别)的第一个变量。因此,B 列代表公司上个月销售的所有包裹的分布情况,按包裹价值分组。最后一列 C 表示由于某些条件(例如,危险的社区)而未能交付的包裹的分布。
我想直观地展示的是,这个特定的标准非常重要,它改变了数据的分布。我使用 Excel 从原始数据计算这些百分比,因为我不允许在工作中安装 R。
我通过一些数据整理完成了下面的情节,但我想如果我知道怎么做我可以做得更好:
编辑:有人告诉我 post 数据集的 dput 版本:
structure(list(Levels = structure(c(6L, 11L, 12L, 13L, 1L, 2L,
3L, 4L, 5L, 7L, 8L, 9L, 10L), .Label = c("Less than 00", "Less than 00",
"Less than 00", "Less than 00", "Less than 00", "Less than 0",
"Less than 00", "Less than 00", "Less than 00", "Less than 00",
"Less than 0", "Less than 0", "Less than 0"), 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))
>
我会绘制经验累积分布函数。这是有道理的,因为这两个函数的比较也是 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'))