Quantile's weights: Confusion
patrick-weiss opened this issue · 0 comments
Working with the Quantile() function resulted in some confusion (which might be based on a conceptual misunderstanding): If the sum of weights
is 1, the function (type = 7
, i.e., default) returns the maximum no matter, which prob
are given. Looking at the function's lines 85:86: n <- sum(weights)
and ord <- 1 + (n - 1) * probs
this seems intended.
The confusion might be related to the definition of weights (where I assumed that weights sum to one by default). However, either a warning/error or a change in the documentation would be appreciated, given that the function turns into max()
. Alternatively, multiplying the weights by some sufficiently large number returns the expected result. This multiplication could be forced if(sum(weights) == 1)
.
Caveat: Might be just a misunderstanding on my side. In this case, I am grateful for some clarification. Thanks for your efforts.
Demonstration: R 4.3.0; DescTools 0.99.49; Windows 11
library(DescTools)
set.seed(2023)
sample <- data.frame("x" = 1:100,
"weights" = sample(1:10,
size = 100,
replace = TRUE))
sample$weights = sample$weights/sum(sample$weights)
Quantile(sample$x,
sample$weights,
probs = seq(0, 1, length.out = 6))
Quantile(sample$x,
sample$weights*10^6,
probs = seq(0, 1, length.out = 6))