R分位数函数因小值而失败
R quantile function fails with small values
R 分位数函数无法找到非常小的十分位数,是否有比其他算法效果更好的算法?
R 分位数函数 不会 无法找到非常小的值的十分位数;只是如果您的集合中没有很多样本,那么 概念 的十分位数会变得模棱两可。实际上有 9 种不同的方法可以使用 R 中的 quantile
函数计算分位数,您可以通过设置 type
参数来更改。
这是一个尝试提取向量的十分位数的示例 c(1, 2, 3)
,9 种方法中的每一种都可用。这些是否符合您的期望?就个人而言,我喜欢这里的方法 7,但我想这实际上取决于您如何定义十分位数,以及用于什么目的。
sapply(1:9, function(x) quantile(c(1:3), probs = seq(0, 1, 0.1), type = x))
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#> 0% 1 1 1 1.0 1.0 1.0 1.0 1.000000 1.000
#> 10% 1 1 1 1.0 1.0 1.0 1.2 1.000000 1.000
#> 20% 1 1 1 1.0 1.1 1.0 1.4 1.000000 1.025
#> 30% 1 1 1 1.0 1.4 1.2 1.6 1.333333 1.350
#> 40% 2 2 1 1.2 1.7 1.6 1.8 1.666667 1.675
#> 50% 2 2 2 1.5 2.0 2.0 2.0 2.000000 2.000
#> 60% 2 2 2 1.8 2.3 2.4 2.2 2.333333 2.325
#> 70% 3 3 2 2.1 2.6 2.8 2.4 2.666667 2.650
#> 80% 3 3 2 2.4 2.9 3.0 2.6 3.000000 2.975
#> 90% 3 3 3 2.7 3.0 3.0 2.8 3.000000 3.000
#> 100% 3 3 3 3.0 3.0 3.0 3.0 3.000000 3.000
R软件没有实现形式分位数功能,否则这个软件有错误。对于区间 [0,1] 中的概率 p,分位数函数保持连续。请参阅 Parzen, E. (2004) 分位数概率和统计数据建模中的第 12 节。统计科学, 19(4), 652-662.
从这个意义上说,如果样本是{1,2,3,4,5,6,7,8,9,10},样本分位数是:
1 作为 0.1 分位数,
2 作为 0.2 分位数,
3 为 0.3 分位数,依此类推。
然而,R 中的 quantile() 函数,type=1,给出:
4 作为 0.3 分位数和
8 作为 0.7 分位数。
请参阅下面的示例。
> sapply(1:9,function(x) quantile(c(1:10),probs=seq(0,1,0.1),type=x))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
0% 1 1.0 1 1 1.0 1.0 1.0 1.000000 1.000
10% 1 1.5 1 1 1.5 1.1 1.9 1.366667 1.400
20% 2 2.5 2 2 2.5 2.2 2.8 2.400000 2.425
30% 4 4.0 3 3 3.5 3.3 3.7 3.433333 3.450
40% 4 4.5 4 4 4.5 4.4 4.6 4.466667 4.475
50% 5 5.5 5 5 5.5 5.5 5.5 5.500000 5.500
60% 7 7.0 6 6 6.5 6.6 6.4 6.533333 6.525
70% 8 8.0 7 7 7.5 7.7 7.3 7.566667 7.550
80% 8 8.5 8 8 8.5 8.8 8.2 8.600000 8.575
90% 9 9.5 9 9 9.5 9.9 9.1 9.633333 9.600
100% 10 10.0 10 10 10.0 10.0 10.0 10.000000 10.000
R 分位数函数无法找到非常小的十分位数,是否有比其他算法效果更好的算法?
R 分位数函数 不会 无法找到非常小的值的十分位数;只是如果您的集合中没有很多样本,那么 概念 的十分位数会变得模棱两可。实际上有 9 种不同的方法可以使用 R 中的 quantile
函数计算分位数,您可以通过设置 type
参数来更改。
这是一个尝试提取向量的十分位数的示例 c(1, 2, 3)
,9 种方法中的每一种都可用。这些是否符合您的期望?就个人而言,我喜欢这里的方法 7,但我想这实际上取决于您如何定义十分位数,以及用于什么目的。
sapply(1:9, function(x) quantile(c(1:3), probs = seq(0, 1, 0.1), type = x))
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#> 0% 1 1 1 1.0 1.0 1.0 1.0 1.000000 1.000
#> 10% 1 1 1 1.0 1.0 1.0 1.2 1.000000 1.000
#> 20% 1 1 1 1.0 1.1 1.0 1.4 1.000000 1.025
#> 30% 1 1 1 1.0 1.4 1.2 1.6 1.333333 1.350
#> 40% 2 2 1 1.2 1.7 1.6 1.8 1.666667 1.675
#> 50% 2 2 2 1.5 2.0 2.0 2.0 2.000000 2.000
#> 60% 2 2 2 1.8 2.3 2.4 2.2 2.333333 2.325
#> 70% 3 3 2 2.1 2.6 2.8 2.4 2.666667 2.650
#> 80% 3 3 2 2.4 2.9 3.0 2.6 3.000000 2.975
#> 90% 3 3 3 2.7 3.0 3.0 2.8 3.000000 3.000
#> 100% 3 3 3 3.0 3.0 3.0 3.0 3.000000 3.000
R软件没有实现形式分位数功能,否则这个软件有错误。对于区间 [0,1] 中的概率 p,分位数函数保持连续。请参阅 Parzen, E. (2004) 分位数概率和统计数据建模中的第 12 节。统计科学, 19(4), 652-662.
从这个意义上说,如果样本是{1,2,3,4,5,6,7,8,9,10},样本分位数是:
1 作为 0.1 分位数,
2 作为 0.2 分位数,
3 为 0.3 分位数,依此类推。
然而,R 中的 quantile() 函数,type=1,给出:
4 作为 0.3 分位数和
8 作为 0.7 分位数。
请参阅下面的示例。
> sapply(1:9,function(x) quantile(c(1:10),probs=seq(0,1,0.1),type=x))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
0% 1 1.0 1 1 1.0 1.0 1.0 1.000000 1.000
10% 1 1.5 1 1 1.5 1.1 1.9 1.366667 1.400
20% 2 2.5 2 2 2.5 2.2 2.8 2.400000 2.425
30% 4 4.0 3 3 3.5 3.3 3.7 3.433333 3.450
40% 4 4.5 4 4 4.5 4.4 4.6 4.466667 4.475
50% 5 5.5 5 5 5.5 5.5 5.5 5.500000 5.500
60% 7 7.0 6 6 6.5 6.6 6.4 6.533333 6.525
70% 8 8.0 7 7 7.5 7.7 7.3 7.566667 7.550
80% 8 8.5 8 8 8.5 8.8 8.2 8.600000 8.575
90% 9 9.5 9 9 9.5 9.9 9.1 9.633333 9.600
100% 10 10.0 10 10 10.0 10.0 10.0 10.000000 10.000