QUANTILE Function
Computes quantiles in a distribution.
Usage
q = QUANTILE(data, fvalues, f=f)
Input Parameters
data—A vector of any Real data-type.
fvalues—A vector of values in the range (0,1], for which the quantiles are computed.
Returned Value
q—A 1D vector of doubles of same length as fvalues, where q(i) is the quantile of the distribution (possibly interpolated) associated with fvalues(i).
Keywords
f—(Output) A 1D vector of doubles (of the same length as data) of f-values, where f(i) is the f-value of data(i).
Discussion
The ith quantile is defined in terms of X(k), the kth order statistic: if 0 < ith < 1 and 1 <= k <= n, quantile is X(ceil(n*Ith)) if n*Ith is not integral, otherwise (X(n*Ith)+ X(n*Ith + 1))/2.
From The Elements of Graphing Data, Cleveland, 1994, pg 136: "An f quantile of a distribution is a number, q, such that approximately a fraction f of the values of the distribution is less than or equal to q. f is the f-value of q. The median is the 0.5 quantile, the lower quartile is the 0.25 quantile, and the upper quartile is the 0.75 quantile".
Example
data = [5, 1, 9, 3, 14, 9, 7]
fvalues = [0.01, 0.25, 0.6, 0.75, 0.928472, 0.99]
q = QUANTILE(data, fvalues, f=f)
PM, ' Observation Data f-value'
obs = LINDGEN(N_ELEMENTS(data))
FOR i=0L, N_ELEMENTS(data)-1 DO $
PRINT, obs(i), ' ', data(i), ' ',f(i)
PM, ''
; PV-WAVE prints:
; 0 5 0.35714286
; 1 1 0.071428571
; 2 9 0.78571429
; 3 3 0.21428571
; 4 14 0.92857143
; 5 9 0.64285714
; 6 7 0.50000000
PM, ' Input f-values Associated quantiles '
FOR i=0L, N_ELEMENTS(fvalues)-1 DO $
PRINT, fvalues(i), ' ', q(i)
; PV-WAVE prints:
; 0.0100000 1.0000000
; 0.250000 3.5000000
; 0.600000 8.4000003
; 0.750000 9.0000000
; 0.928472 13.996519
; 0.990000 14.000000