wtd.iqr
使用包(版本 1.6.6)中的函数来计算加权四分位数范围(与 vanilla R包reldist
返回的未加权四分位数范围相反),我得到了意想不到的结果。为了探索这个问题,我尝试将 的输出与.IQR
stats
reldist::wtd.iqr
IQR
令我惊讶的是,我发现即使输入值的权重相同(即当权重应该没有区别时)IQR
,reldist::wtd.iqr
对于相同的输入值也会返回完全不同的输出值。
> x <- rnorm(10000)
> wt <- rep(1, length(x))
> paste(c('IQR:', IQR(x), 'wtd.iqr:', reldist::wtd.iqr(x, weight = wt)))
[1] "IQR:" "1.34879539936654" "wtd.iqr:" "0.675866062623211"
>
在上面的测试中,IQR
似乎总是返回一个输出值大约wtd.iqr
是相同输入值返回值的两倍。
对于不遵循上述分布的输入值,这种关系不一定成立:事实上,对于真实数据,我有时会从 得到负值wtd.iqr
,我认为这是不可能的,但从未发现会发生这种情况IQR
.
事实上,在我看来,wtd.iqr
实际上可能返回的不是四分位数范围,而是四分位数之一。但是,如果这里有一个错误,它肯定不会那么明显——可以吗?
大概这两个函数以不同的方式定义了四分位距的概念,但是文档中没有任何线索。文档IQR
说明它“计算 x 值的四分位数范围”,而文档wtd.iqr
说明它“从加权样本返回经验四分位数范围”。