QuartileDeviation[data]
gives the quartile deviation or semi-interquartile range of the elements in data.
QuartileDeviation[data,{{a,b},{c,d}}]
uses the quantile definition specified by parameters a, b, c, d.
QuartileDeviation[dist]
gives the quartile deviation or semi-interquartile range of the distribution dist.
QuartileDeviation
QuartileDeviation[data]
gives the quartile deviation or semi-interquartile range of the elements in data.
QuartileDeviation[data,{{a,b},{c,d}}]
uses the quantile definition specified by parameters a, b, c, d.
QuartileDeviation[dist]
gives the quartile deviation or semi-interquartile range of the distribution dist.
Details
- QuartileDeviation is a robust measure of dispersion, which means it is not very sensitive to outliers.
- QuartileDeviation[data]
is given by
, where
is given by Quartiles[data]. » - For MatrixQ data, quartile deviation is computed for each column vector with QuartileDeviation[{{x1,y1,…},{x2,y2,…},…}] equivalent to {QuartileDeviation[{x1,x2,…}],QuartileDeviation[{y1,y2,…}]}. »
- For ArrayQ data, quartile deviation is equivalent to ArrayReduce[QuartileDeviation,data,1]. »
- QuartileDeviation[data,{{a,b},{c,d}}] uses
computed as Quartiles[data, {{a,b},{c,d}}]. » - Common choices of parameters {{a,b},{c,d}} include:
-
{{0,0},{1,0}} inverse empirical CDF {{0,0},{0,1}} linear interpolation (California method) {{1/2,0},{0,0}} element numbered closest to p n {{1/2,0},{0,1}} linear interpolation (hydrologist method; default) {{0,1},{0,1}} mean‐based estimate (Weibull method) {{1,-1},{0,1}} mode‐based estimate {{1/3,1/3},{0,1}} median‐based estimate {{3/8,1/4},{0,1}} normal distribution estimate - The default choice of parameters is {{1/2,0},{0,1}}. »
- The data can have the following additional forms and interpretations:
-
Association the values (the keys are ignored) » SparseArray as an array, equivalent to Normal[data] » QuantityArray quantities as an array » WeightedData based on the underlying EmpiricalDistribution » EventData based on the underlying SurvivalDistribution » TimeSeries, TemporalData, … vector or array of values (the time stamps ignored) » Image,Image3D RGB channel's values or grayscale intensity value » Audio amplitude values of all channels » DateObject, TimeObject list of dates or list of times » - QuartileDeviation[dist] is given by InterquartileRange[dist]/2. »
- For a random process proc, the quartile deviation function can be computed for slice distribution at time t, SliceDistribution[proc,t], as
[t]=QuartileDeviation[SliceDistribution[proc,t]]. »
Examples
open all close allBasic Examples (3)
Quartile deviation for a list of exact numbers:
QuartileDeviation[{1, 3, 4, 2, 5, 6}]Quartile deviation of a list of dates:
QuartileDeviation[{Yesterday, Today, Tomorrow}]Quartile deviation of a parametric distribution:
QuartileDeviation[ExponentialDistribution[λ]]Scope (23)
Basic Uses (8)
Exact input yields exact output:
QuartileDeviation[{1, 3, 2, 7}]QuartileDeviation[{π, E, 2}]//TogetherApproximate input yields approximate output:
QuartileDeviation[{1., 3., 2., 7.}]QuartileDeviation[N[{1, 3, 2, 7}, 30]]Compute results using other parametrizations:
QuartileDeviation[{-1, 5, 10, 4, 25, 2, 1}]QuartileDeviation[{-1, 5, 10, 4, 25, 2, 1}, {{0, 0}, {1, 0}}]Find the quartile deviation for WeightedData:
data = {8, 3, 5, 4, 9, 0, 4, 2, 2, 3};
weights = {0.15, 0.09, 0.12, 0.10, 0.16, 0., 0.11, 0.08, 0.08, 0.09};QuartileDeviation[WeightedData[data, weights]]Find the quartile deviation for EventData:
e = {1.0, 2.1, 3.2, 4.5, 5.7};
ci = {0, 0, 0, 1, 0};QuartileDeviation[EventData[e, ci]]Find the quartile deviation for TemporalData:
s1 = {2, 1, 6, 5, 7, 4};
s2 = {4, 7, 5, 6, 1, 2};
t = {1, 2, 5, 10, 12, 15};td = TemporalData[{s1, s2}, {t}];QuartileDeviation[td[10]]Find the quartile deviation for TimeSeries:
QuartileDeviation[TemporalData[TimeSeries, {{{2.3, 1.2, 6.7, 5.8, 7.1, 4.6}}, {{0, 5, 1}}, 1, {"Discrete", 1},
{"Discrete", 1}, 1, {}}, False, 10.]]The quartile deviation depends only on the values:
QuartileDeviation[TemporalData[TimeSeries, {{{2.3, 1.2, 6.7, 5.8, 7.1, 4.6}}, {{0, 5, 1}}, 1, {"Discrete", 1},
{"Discrete", 1}, 1, {}}, False, 10.]["Values"]]Find the quartile deviation for data involving quantities:
data = Quantity[RandomReal[1, 6], "Meters"]QuartileDeviation[data]Array Data (5)
QuartileDeviation for a matrix gives columnwise ranges:
QuartileDeviation[{{3, 5}, {1, 8}, {5, 6}, {7, 8}, {2, 4}}]Quartile deviation for a tensor works across the first index:
QuartileDeviation[RandomReal[1, {2, 2, 2}]]QuartileDeviation[RandomReal[1, 10 ^ 7]]QuartileDeviation[RandomReal[1, {10 ^ 6, 5}]]When the input is an Association, QuartileDeviation works on its values:
mat = RandomReal[1, {3, 2}];
assoc = AssociationThread[Range[3], mat]QuartileDeviation[assoc]SparseArray data can be used just like dense arrays:
sp = SparseArray[{{i_, i_} :> i, {i_, j_} /; j < i :> (i + j) ^ 2}, {100, 10}]QuartileDeviation[sp]Find the quartile deviation of a QuantityArray:
data = QuantityArray[RandomReal[1, 6], "Pounds"]QuartileDeviation[data]Image and Audio Data (2)
Channelwise quartile deviation value of an RGB image:
QuartileDeviation[[image]]RGBColor[%]Quartile deviation intensity value of a grayscale image:
QuartileDeviation[[image]]Quartile deviation amplitude of all amplitude values of all channels:
a = ExampleData[{"Audio", "Bee"}]AudioMeasurements[a, "Channels"]QuartileDeviation[a]Date and Time (5)
Compute quartile deviation of dates:
dates = WolframLanguageData[All, "DateIntroduced"];DateHistogram[dates]QuartileDeviation[dates]UnitConvert[%, "Years"]Compute the weighted quartile deviation of dates:
dates = RandomDate[4]weights = {1, 1, 1, 3};QuartileDeviation[WeightedData[dates, weights]]Compare to unweighted quartile deviation:
UnitConvert[QuartileDeviation[dates], "Days"]Compute the quartile deviation of dates given in different calendars:
dates = {DateObject[{2024, 2, 29}, CalendarType -> "Julian"], DateObject[{1524, 1, 1}, CalendarType -> "Islamic"], DateObject[{6024, 1, 15}, CalendarType -> "Jewish"]}QuartileDeviation[dates]UnitConvert[%, "Years"]Compute the quartile deviation of times:
times = RandomTime[3]QuartileDeviation[times]Compute the quartile deviation of times with different time zone specifications:
times = {TimeObject[{12}, TimeZone -> 0], TimeObject[{12}, TimeZone -> 2], TimeObject[{12}, TimeZone -> "Asia/Tokyo"]}QuartileDeviation[times]Distributions and Processes (3)
Find the quartile deviation for a parametric distribution:
QuartileDeviation[ExponentialDistribution[μ]]Quartile deviation for a derived distribution:
QuartileDeviation[TransformedDistribution[x^2, xNormalDistribution[]]]data = RandomVariate[NormalDistribution[], 10 ^ 3];QuartileDeviation[HistogramDistribution[data]]Quartile deviation for a time slice of a random process:
QuartileDeviation[GeometricBrownianMotionProcess[0, 1, 2][1 / 7]]Applications (4)
Obtain a robust estimate of dispersion when extreme values are present:
QuartileDeviation[{5, 3, 10 ^ 6, 20, 15, 6}]//NMeasures based on the Mean are heavily influenced by extreme values:
StandardDeviation[{5, 3, 10 ^ 6, 20, 15, 6}]//NMeanDeviation[{5, 3, 10 ^ 6, 20, 15, 6}]//NIdentify periods of high volatility in stock data using a five-year moving quartile deviation:
data = TemporalData[«4»];smooth = MovingMap[QuartileDeviation, data, {Quantity[5 * 365, "Day"]}];DateListPlot[smooth]Compute QuartileDeviation for slices of a collection of paths of a random process:
data = RandomFunction[WienerProcess[], {0, 1, .01}, 10 ^ 3];times = Range[0, 1, .1];qdev = Map[{#, QuartileDeviation[data[#]]}&, times];Plot of the quartile deviations for the selected times:
ListPlot[qdev]Find the quartile deviation of the heights for the children in a class:
heights = Quantity[{134, 143, 131, 140, 145, 136, 131, 136, 143, 136, 133, 145, 147,
150, 150, 146, 137, 143, 132, 142, 145, 136, 144, 135, 141}, "Centimeters"];ListPlot[heights, Filling -> Axis, AxesLabel -> Automatic](qd = QuartileDeviation[heights])//NPlot the quartile deviation respective of the median:
m = Median[heights];
n = Length[heights];
ListPlot[{heights, {{0, m}, {n, m}}, {{0, m - qd}, {n, m - qd}}, {{0, m + qd}, {n, m + qd}}}, Filling -> {1 -> 0, 3 -> {4}}, Joined -> {False, True, True, True}, PlotStyle -> {Automatic, Automatic, Gray, Gray}, PlotLegends -> {"heights", "median", "quartile deviation bands"}, AxesLabel -> Automatic]Properties & Relations (3)
QuartileDeviation is half the difference of linearly interpolated Quantile values:
data = RandomReal[10, 20];Apply[Subtract, Quantile[data, {3 / 4, 1 / 4}, {{1 / 2, 0}, {0, 1}}]] / 2QuartileDeviation[data]QuartileDeviation is half the difference between the first and third quartiles:
data = RandomReal[10, 20];qrs = Quartiles[data];
(qrs[[3]] - qrs[[1]]) / 2QuartileDeviation[data]InterquartileRange is twice QuartileDeviation:
data = RandomReal[10, 20];InterquartileRange[data]2QuartileDeviation[data]With[{dist = ChiSquareDistribution[3]}, 2QuartileDeviation[dist] == InterquartileRange[dist]//Simplify]Possible Issues (2)
QuartileDeviation requires numeric values in data:
QuartileDeviation[{a, b, c}]The symbolic closed form may exist for some distributions:
QuartileDeviation[NormalDistribution[μ, σ]]QuartileDeviation is not the difference between the median and the first or the third quantiles:
data = RandomReal[10, 20];qs = Quartiles[data]qs[[1]] + QuartileDeviation[data] == qs[[2]]qs[[2]] + QuartileDeviation[data] == qs[[3]]The difference between the third and the first quantiles is given by InterquartileRange:
qs[[1]] + InterquartileRange[data] == qs[[3]]Neat Examples (1)
The distribution of QuartileDeviation estimates for 20, 100 and 300 samples:
QuartileDeviation[ExponentialDistribution[0.9]]SmoothHistogram[Table[QuartileDeviation[RandomVariate[ExponentialDistribution[0.9], {s, 1000}]], {s, {20, 100, 300}}], Filling -> Axis, PlotLegends -> {20, 100, 300}, PlotRange -> {{0, 1.5}, Automatic}]Tech Notes
Related Guides
History
Introduced in 2007 (6.0) | Updated in 2017 (11.1) ▪ 2023 (13.3) ▪ 2024 (14.1)
Text
Wolfram Research (2007), QuartileDeviation, Wolfram Language function, https://reference.wolfram.com/language/ref/QuartileDeviation.html (updated 2024).
CMS
Wolfram Language. 2007. "QuartileDeviation." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/QuartileDeviation.html.
APA
Wolfram Language. (2007). QuartileDeviation. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/QuartileDeviation.html
BibTeX
@misc{reference.wolfram_2026_quartiledeviation, author="Wolfram Research", title="{QuartileDeviation}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/QuartileDeviation.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_quartiledeviation, organization={Wolfram Research}, title={QuartileDeviation}, year={2024}, url={https://reference.wolfram.com/language/ref/QuartileDeviation.html}, note=[Accessed: 12-June-2026]}