0

好的,所以我在这里遇到了最奇怪的问题。当我们通过自变量 X 的特定分位数划分空间时,我正在取因变量 Y 的平均值。

我的问题是,R 中的分位数函数没有返回我的自变量 X 范围内的值,但是当打印到屏幕上时它返回的值是正确的值。让这个奇怪的是它只发生在特定的分位数上。

一些示例代码来演示这种奇怪的效果:

x<-c(1.49,rep(1.59,86))
quantile(x,0.05) # returns 1.59, the correct value
# However both of these return all values as false
table(x>=quantile(x,0.05))
table(x==quantile(x,0.05))
# But if we take a quantile at 0.075 it works correctly
table(x>=quantile(x,0.075))

你们可以提供的任何见解将不胜感激。

4

1 回答 1

5

分位数不完全是 1.59

> quantile(x, 0.05)[[1]] == 1.59
[1] FALSE
> quantile(x, 0.05)[[1]] == 1.5900000000000003
[1] TRUE

quantile(..., type = 7)似乎正在替换1.590.7000000000000001 * 1.59 + 0.3 * 1.59,这引入了一个微小的错误,该错误禁止使用精确相等。

于 2011-12-15T03:07:12.727 回答