Skip to content

Quantile's weights: Confusion #123

@patrick-weiss

Description

@patrick-weiss

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))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions