Copyright | (c) 2009 Bryan O'Sullivan |
---|---|
License | BSD3 |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Statistics.Quantile
Description
Functions for approximating quantiles, i.e. points taken at regular intervals from the cumulative distribution function of a random variable.
The number of quantiles is described below by the variable q, so with q=4, a 4-quantile (also known as a quartile) has 4 intervals, and contains 5 points. The parameter k describes the desired point, where 0 ≤ k ≤ q.
Synopsis
- data ContParam = ContParam !Double !Double
- class Default a where
- def :: a
- quantile :: Vector v Double => ContParam -> Int -> Int -> v Double -> Double
- quantiles :: (Vector v Double, Foldable f, Functor f) => ContParam -> f Int -> Int -> v Double -> f Double
- quantilesVec :: (Vector v Double, Vector v Int) => ContParam -> v Int -> Int -> v Double -> v Double
- cadpw :: ContParam
- hazen :: ContParam
- spss :: ContParam
- s :: ContParam
- medianUnbiased :: ContParam
- normalUnbiased :: ContParam
- weightedAvg :: Vector v Double => Int -> Int -> v Double -> Double
- median :: Vector v Double => ContParam -> v Double -> Double
- mad :: Vector v Double => ContParam -> v Double -> Double
- midspread :: Vector v Double => ContParam -> Int -> v Double -> Double
- continuousBy :: Vector v Double => ContParam -> Int -> Int -> v Double -> Double
Quantile estimation functions
Below is family of functions which use same algorithm for estimation
of sample quantiles. It approximates empirical CDF as continuous
piecewise function which interpolates linearly between points
\((X_k,p_k)\) where \(X_k\) is k-th order statistics (k-th smallest
element) and \(p_k\) is probability corresponding to
it. ContParam
determines how \(p_k\) is chosen. For more detailed
explanation see [Hyndman1996].
This is the method used by most statistical software, such as R, Mathematica, SPSS, and S.
Parameters α and β to the continuousBy
function. Exact
meaning of parameters is described in [Hyndman1996] in section
"Piecewise linear functions"
Constructors
ContParam !Double !Double |
Instances
FromJSON ContParam Source # | |||||
Defined in Statistics.Quantile Methods parseJSON :: Value -> Parser ContParam parseJSONList :: Value -> Parser [ContParam] omittedField :: Maybe ContParam | |||||
ToJSON ContParam Source # | |||||
Defined in Statistics.Quantile Methods toEncoding :: ContParam -> Encoding toJSONList :: [ContParam] -> Value toEncodingList :: [ContParam] -> Encoding | |||||
Binary ContParam Source # | |||||
Default ContParam Source # | We use | ||||
Defined in Statistics.Quantile | |||||
Data ContParam Source # | |||||
Defined in Statistics.Quantile Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ContParam -> c ContParam gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ContParam toConstr :: ContParam -> Constr dataTypeOf :: ContParam -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ContParam) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ContParam) gmapT :: (forall b. Data b => b -> b) -> ContParam -> ContParam gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ContParam -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ContParam -> r gmapQ :: (forall d. Data d => d -> u) -> ContParam -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ContParam -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ContParam -> m ContParam gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ContParam -> m ContParam gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ContParam -> m ContParam | |||||
Generic ContParam Source # | |||||
Defined in Statistics.Quantile Associated Types
| |||||
Show ContParam Source # | |||||
Eq ContParam Source # | |||||
Ord ContParam Source # | |||||
Defined in Statistics.Quantile | |||||
type Rep ContParam Source # | |||||
Defined in Statistics.Quantile type Rep ContParam = D1 ('MetaData "ContParam" "Statistics.Quantile" "statistics-0.16.2.1-2i2rZwr1PFvBdiWl7Q2tXJ" 'False) (C1 ('MetaCons "ContParam" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Double) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Double))) |
Minimal complete definition
Nothing
Instances
Default IntSet | |
Defined in Data.Default.Internal | |
Default All | |
Defined in Data.Default.Internal | |
Default Any | |
Defined in Data.Default.Internal | |
Default CBool | |
Defined in Data.Default.Internal | |
Default CClock | |
Defined in Data.Default.Internal | |
Default CDouble | |
Defined in Data.Default.Internal | |
Default CFloat | |
Defined in Data.Default.Internal | |
Default CInt | |
Defined in Data.Default.Internal | |
Default CIntMax | |
Defined in Data.Default.Internal | |
Default CIntPtr | |
Defined in Data.Default.Internal | |
Default CLLong | |
Defined in Data.Default.Internal | |
Default CLong | |
Defined in Data.Default.Internal | |
Default CPtrdiff | |
Defined in Data.Default.Internal | |
Default CSUSeconds | |
Defined in Data.Default.Internal | |
Default CShort | |
Defined in Data.Default.Internal | |
Default CSigAtomic | |
Defined in Data.Default.Internal | |
Default CSize | |
Defined in Data.Default.Internal | |
Default CTime | |
Defined in Data.Default.Internal | |
Default CUInt | |
Defined in Data.Default.Internal | |
Default CUIntMax | |
Defined in Data.Default.Internal | |
Default CUIntPtr | |
Defined in Data.Default.Internal | |
Default CULLong | |
Defined in Data.Default.Internal | |
Default CULong | |
Defined in Data.Default.Internal | |
Default CUSeconds | |
Defined in Data.Default.Internal | |
Default CUShort | |
Defined in Data.Default.Internal | |
Default IntPtr | |
Defined in Data.Default.Internal | |
Default WordPtr | |
Defined in Data.Default.Internal | |
Default Int16 | |
Defined in Data.Default.Internal | |
Default Int32 | |
Defined in Data.Default.Internal | |
Default Int64 | |
Defined in Data.Default.Internal | |
Default Int8 | |
Defined in Data.Default.Internal | |
Default Word16 | |
Defined in Data.Default.Internal | |
Default Word32 | |
Defined in Data.Default.Internal | |
Default Word64 | |
Defined in Data.Default.Internal | |
Default Word8 | |
Defined in Data.Default.Internal | |
Default Ordering | |
Defined in Data.Default.Internal | |
Default NewtonParam | |
Defined in Numeric.RootFinding | |
Default RiddersParam | |
Defined in Numeric.RootFinding | |
Default ContParam Source # | We use |
Defined in Statistics.Quantile | |
Default Integer | |
Defined in Data.Default.Internal | |
Default () | |
Defined in Data.Default.Internal | |
Default Bool | |
Defined in Data.Default.Internal | |
Default Double | |
Defined in Data.Default.Internal | |
Default Float | |
Defined in Data.Default.Internal | |
Default Int | |
Defined in Data.Default.Internal | |
Default Word | |
Defined in Data.Default.Internal | |
(Default a, RealFloat a) => Default (Complex a) | |
Defined in Data.Default.Internal | |
Default (IntMap v) | |
Defined in Data.Default.Internal | |
Default (Seq a) | |
Defined in Data.Default.Internal | |
Default (Set v) | |
Defined in Data.Default.Internal | |
Default a => Default (Tree a) | |
Defined in Data.Default.Internal | |
Default a => Default (Identity a) | |
Defined in Data.Default.Internal | |
Default (First a) | |
Defined in Data.Default.Internal | |
Default (Last a) | |
Defined in Data.Default.Internal | |
Default a => Default (Dual a) | |
Defined in Data.Default.Internal | |
Default (Endo a) | |
Defined in Data.Default.Internal | |
Num a => Default (Product a) | |
Defined in Data.Default.Internal | |
Num a => Default (Sum a) | |
Defined in Data.Default.Internal | |
Default (ConstPtr a) | |
Defined in Data.Default.Internal | |
Default (FunPtr a) | |
Defined in Data.Default.Internal | |
Default (Ptr a) | |
Defined in Data.Default.Internal | |
Integral a => Default (Ratio a) | |
Defined in Data.Default.Internal | |
Default (Maybe a) | |
Defined in Data.Default.Internal | |
Default a => Default (Solo a) | |
Defined in Data.Default.Internal | |
Default [a] | |
Defined in Data.Default.Internal | |
HasResolution a => Default (Fixed a) | |
Defined in Data.Default.Internal | |
Default (Map k v) | |
Defined in Data.Default.Internal | |
Default (Proxy a) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2) => Default (a1, a2) | |
Defined in Data.Default.Internal | |
Default a => Default (Const a b) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3) => Default (a1, a2, a3) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4) => Default (a1, a2, a3, a4) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5) => Default (a1, a2, a3, a4, a5) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6) => Default (a1, a2, a3, a4, a5, a6) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7) => Default (a1, a2, a3, a4, a5, a6, a7) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8) => Default (a1, a2, a3, a4, a5, a6, a7, a8) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24, Default a25) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24, Default a25, Default a26) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24, Default a25, Default a26, Default a27) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24, Default a25, Default a26, Default a27, Default a28) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24, Default a25, Default a26, Default a27, Default a28, Default a29) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24, Default a25, Default a26, Default a27, Default a28, Default a29, Default a30) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30) | |
Defined in Data.Default.Internal | |
(Default a1, Default a2, Default a3, Default a4, Default a5, Default a6, Default a7, Default a8, Default a9, Default a10, Default a11, Default a12, Default a13, Default a14, Default a15, Default a16, Default a17, Default a18, Default a19, Default a20, Default a21, Default a22, Default a23, Default a24, Default a25, Default a26, Default a27, Default a28, Default a29, Default a30, Default a31) => Default (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31) | |
Defined in Data.Default.Internal |
Arguments
:: Vector v Double | |
=> ContParam | Parameters α and β. |
-> Int | k, the desired quantile. |
-> Int | q, the number of quantiles. |
-> v Double | x, the sample data. |
-> Double |
O(n·log n). Estimate the kth q-quantile of a sample x, using the continuous sample method with the given parameters.
The following properties should hold, otherwise an error will be thrown.
- input sample must be nonempty
- the input does not contain
NaN
- 0 ≤ k ≤ q
quantiles :: (Vector v Double, Foldable f, Functor f) => ContParam -> f Int -> Int -> v Double -> f Double Source #
O(k·n·log n). Estimate set of the kth q-quantile of a sample x, using the continuous sample method with the given parameters. This is faster than calling quantile repeatedly since sample should be sorted only once
The following properties should hold, otherwise an error will be thrown.
- input sample must be nonempty
- the input does not contain
NaN
- for every k in set of quantiles 0 ≤ k ≤ q
quantilesVec :: (Vector v Double, Vector v Int) => ContParam -> v Int -> Int -> v Double -> v Double Source #
O(k·n·log n). Same as quantiles but uses Vector
container
instead of Foldable
one.
Parameters for the continuous sample method
California Department of Public Works definition, α=0, β=1. Gives a linear interpolation of the empirical CDF. This corresponds to method 4 in R and Mathematica.
Hazen's definition, α=0.5, β=0.5. This is claimed to be popular among hydrologists. This corresponds to method 5 in R and Mathematica.
Definition used by the SPSS statistics application, with α=0, β=0 (also known as Weibull's definition). This corresponds to method 6 in R and Mathematica.
Definition used by the S statistics application, with α=1,
β=1. The interpolation points divide the sample range into n-1
intervals. This corresponds to method 7 in R and Mathematica and
is default in R.
medianUnbiased :: ContParam Source #
Median unbiased definition, α=1/3, β=1/3. The resulting quantile estimates are approximately median unbiased regardless of the distribution of x. This corresponds to method 8 in R and Mathematica.
normalUnbiased :: ContParam Source #
Normal unbiased definition, α=3/8, β=3/8. An approximately unbiased estimate if the empirical distribution approximates the normal distribution. This corresponds to method 9 in R and Mathematica.
Other algorithms
Arguments
:: Vector v Double | |
=> Int | k, the desired quantile. |
-> Int | q, the number of quantiles. |
-> v Double | x, the sample data. |
-> Double |
O(n·log n). Estimate the kth q-quantile of a sample,
using the weighted average method. Up to rounding errors it's same
as quantile s
.
The following properties should hold otherwise an error will be thrown.
- the length of the input is greater than
0
- the input does not contain
NaN
- k ≥ 0 and k ≤ q
Median & other specializations
Arguments
:: Vector v Double | |
=> ContParam | Parameters α and β. |
-> v Double | x, the sample data. |
-> Double |
O(n·log n) Estimate median of sample
Arguments
:: Vector v Double | |
=> ContParam | Parameters α and β. |
-> v Double | x, the sample data. |
-> Double |
O(n·log n). Estimate the median absolute deviation (MAD) of a
sample x using continuousBy
. It's robust estimate of
variability in sample and defined as:
\[ MAD = \operatorname{median}(| X_i - \operatorname{median}(X) |) \]
Arguments
:: Vector v Double | |
=> ContParam | Parameters α and β. |
-> Int | q, the number of quantiles. |
-> v Double | x, the sample data. |
-> Double |
O(n·log n). Estimate the range between q-quantiles 1 and q-1 of a sample x, using the continuous sample method with the given parameters.
For instance, the interquartile range (IQR) can be estimated as follows:
midspread medianUnbiased 4 (U.fromList [1,1,2,2,3]) ==> 1.333333
Deprecated
Arguments
:: Vector v Double | |
=> ContParam | Parameters α and β. |
-> Int | k, the desired quantile. |
-> Int | q, the number of quantiles. |
-> v Double | x, the sample data. |
-> Double |
Deprecated: Use quantile instead
References
- Weisstein, E.W. Quantile. MathWorld. http://mathworld.wolfram.com/Quantile.html
- [Hyndman1996] Hyndman, R.J.; Fan, Y. (1996) Sample quantiles in statistical packages. American Statistician 50(4):361–365. http://www.jstor.org/stable/2684934