Quantile
更多信息
- Quantile 亦称为风险值 (VaR) 或分位值.
- 当 VectorQ data
被排序为
时,分位数估计值
由
给出. - 对于 MatrixQ data,针对每个列向量计算分位数,Quantile[{{x1,y1,…},{x2,y2,…},…},p] 等价于 {Quantile[{x1,x2,…},p],Quantile[{y1,y2,…},p]}. »
- 对于 ArrayQ data,分位数等价于 ArrayReduce[Quantile,data,1]. »
- Quantile[
,p,{{a,b},{c,d}}] 由
给出, r=a+(n+b)p,⌊r⌋= Floor[r],⌈r⌉=Ceiling[r] 和 =FractionalPart[r]. 如果索引超出范围,将其视为 1 或 n. » - 参数 {{a,b},{c,d}} 的常见选择包括:
-
{{0,0},{1,0}} 逆经验 CDF(默认) {{0,0},{0,1}} 线性插值(California 法) {{1/2,0},{0,0}} 编号最接近 p n 的元素 {{1/2,0},{0,1}} 线性插值(水文学法) {{0,1},{0,1}} 基于均值的估计(Weibull 法) {{1,-1},{0,1}} 基于众数的估计 {{1/3,1/3},{0,1}} 基于中位数的估计 {{3/8,1/4},{0,1}} 正态分布估计 - 参数的默认选择为 {{0,0},{1,0}}.
- 统计工作中使用了大约 10 种不同的参数选择.
- Quantile[list,p] 总是给出等于 list 的一个元素的结果.
- d 为 0 时同样成立.
- d 为 1 时,Quantile 是 p 的分段线性函数.
- Median[data] 等价于 Quantile[data,1/2,{{1/2,0},{0,1}}].
- data 可以有以下其他形式和解释:
-
Association 数值(键被忽略) » SparseArray 数组,相当于 Normal[data] » QuantityArray 量组成的数组 » WeightedData 基于 EmpiricalDistribution » EventData 基于 SurvivalDistribution » TimeSeries, TemporalData, … 向量或数值组成的数组(忽略时间戳) » Image,Image3D RGB 通道的值或灰度的强度值 » Audio 所有通道的幅值 » DateObject, TimeObject 日期列表或时间列表 » - Quantile[dist,p] 等价于 InverseCDF[dist,p].
- Quantile[dist,p] 是一组数字
的最小值,使得 Probability[x≤
,xdist]≥p 和 Probability[x≥
,xdist]≥p. » - 对于随机过程 proc,可计算时间 t 处切片分布 SliceDistribution[proc,t] 的分位数函数,即 Quantile[SliceDistribution[proc,t], p]. »
- 值 p 可以是符号和任意位于 0 和 1 之间的数字. »
范例
打开所有单元 关闭所有单元基本范例 (7)
Quantile[{1, 2, 3, 4, 5, 6, 7}, 1 / 2]Quantile[{1, 2, 3, 4, 5, 6, 7}, {0.2, 0.8}]Quantile[Range[100], .99]RandomDate[4]Quantile[%, .3]Quantile[NormalDistribution[μ, σ], q]Plot[Table[Quantile[BetaDistribution[1 / 2, β], q], {β, {1 / 4, 1 / 2, 1}}]//Evaluate, {q, 0, 1}, Filling -> Axis]𝒟 = PoissonDistribution[5];DiscretePlot[Quantile[𝒟, p], {p, CDF[𝒟, Range[0, 10]]}, ExtentSize -> Left, ExtentMarkers -> {"Empty", "Filled"}]范围 (33)
基本用法 (7)
Quantile 适用于任何实数:
Quantile[{E, Pi, Sqrt[2], Sqrt[3]}, 1 / 4]Quantile[N[{5, 10, 4, 25, 2, 1}, 30], 2 / 3]Quantile[{5, 10, 4, 25, 2, 1}, 1 / 5]Quantile[{5, 10, 4, 25, 2, 1}, 1 / 5, {{1 / 2, 0}, {0, 1}}]求 WeightedData 的分位数:
Quantile[WeightedData[{1, 2, 3}, {3, 7, 4}], 0.4]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};Quantile[WeightedData[data, weights], 0.4]求 EventData 的分位数:
e = {1.0, 2.1, 3.2, 4.5, 5.7};
ci = {0, 0, 0, 1, 0};Quantile[EventData[e, ci], 0.4]求 TimeSeries 的分位数:
Quantile[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.], 0.4]Quantile[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"], 0.4]data = Quantity[RandomReal[1, 6], "Meters"]Quantile[data, 0.3]数组数据 (6)
Quantile[{{1, 2Pi}, {2, Pi}, {3, 3Pi}}, 1 / 3]Quantile[{{1, 2Pi}, {2, Pi}, {3, 3Pi}}, {1 / 3, 4 / 5}]Quantile[RandomReal[1, {10, 4, 3}], .2]Quantile[RandomReal[1, 10 ^ 6], 1 / 10]Quantile[RandomReal[1, {10 ^ 5, 5}], 1 / 10]当输入为 Association 时,Quantile 只作用于值:
mat = RandomReal[1, {3, 2}];
assoc = AssociationThread[Range[3], mat]Quantile[assoc, .3]计算 SparseArray 的分位数:
sp = SparseArray[{{i_, i_} :> i, {i_, j_} /; j == i + 1 :> i - 1}, {100, 10}]Quantile[sp, 99 / 100]求 QuantityArray 的分位数:
data = QuantityArray[RandomReal[1, 6], "Pounds"]Quantile[data, .1]图像和音频数据 (2)
日期和时间 (5)
dates = WolframLanguageData[All, "DateIntroduced"];DateHistogram[dates]Quantile[dates, .9]dates = RandomDate[4]weights = {1, 1, 1, 3};Quantile[WeightedData[dates, weights], .1]dates = {DateObject[{2024, 2, 29}, CalendarType -> "Jewish"],
DateObject[{1024, 8, 23}, CalendarType -> "Julian"], DateObject[{1524, 1, 1}, CalendarType -> "Islamic"], DateObject[{6024, 1, 15}, CalendarType -> "Julian"]}TimelinePlot[dates, ImageSize -> Medium]Quantile[dates, .3]%["CalendarType"]times = RandomTime[3, TimeZone -> "America/Chicago"]Quantile[times, .3]times = {TimeObject[{12}, TimeZone -> 0], TimeObject[{12}, TimeZone -> 2], TimeObject[{12}, TimeZone -> "Asia/Tokyo"]}Quantile[times, .2]DateValue[%, "TimeZone"]参数分布 (5)
Quantile[WeibullDistribution[2, 5], 1 / 4]Quantile[NegativeBinomialDistribution[20, 1 / 3], 1 / 5]Quantile[WeibullDistribution[2, 5], 0.4]Quantile[WeibullDistribution[2, 5], N[1 / 4, 25]]Quantile[ChiSquareDistribution[ν], x]Quantile 依次作用于列表的每个元素:
Quantile[NormalDistribution[], {0.0, 0.2, 0.3}]非参数分布 (2)
非参数分布的 Quantile:
r = RandomVariate[NormalDistribution[], 10 ^ 2];Quantile[HistogramDistribution[r], 0.2]Quantile[SmoothKernelDistribution[r], 0.2]Quantile[KernelMixtureDistribution[r], 0.2]Quantile[SurvivalDistribution[r], 0.2]Quantile[EmpiricalDistribution[r], 0.2]Quantile[NormalDistribution[], 0.2]Plot[Quantile[HistogramDistribution[RandomVariate[NormalDistribution[], 10 ^ 3]], q]//Evaluate, {q, 0, 1}, Filling -> Axis, Exclusions -> None]导出分布 (4)
截断分布的 Quantile:
Quantile[TruncatedDistribution[{2, 4}, ExponentialDistribution[1]], q]Plot[{Quantile[ExponentialDistribution[1], q], %}, {q, 0, 1}, Filling -> Axis]Quantile[TransformedDistribution[x ^ 2, xExponentialDistribution[2]], q]Quantile[CensoredDistribution[{-2, 4}, CauchyDistribution[0, 1]], q]Quantile[RayleighDistribution[Quantity[502., "Newtons"]], Quantity[96, "Percent"]]Quantile[HistogramDistribution[QuantityArray[RandomReal[{2, 5}, 1000], "Grams"]], Quantity[96, "Percent"]]随机过程 (2)
Quantile[WienerProcess[μ, σ][t], q]Plot[Evaluate[% /. {μ -> 3, σ -> 1, q -> 1 / 20}], {t, 0, 1}]求某些时间 t=0.5 处,TemporalData 的四分位数:
td = RandomFunction[WienerProcess[1, 1], {0, 10, 0.05}, 100]Quantile[td[0.5], 0.4]Show[ListLinePlot[td, PlotStyle -> Directive[Opacity[0.3], Thin]], Plot[Quantile[td[t], 0.4], {t, 0, 10}, PlotStyle -> Thick]]应用 (7)
𝒟 = NormalDistribution[3, 1];q = Quantile[𝒟, {0, 0.2, 0.4, 0.6, 0.8, 1}]//NLength[q]Plot[PDF[𝒟, x], {x, 0, 6}, Filling -> Axis, Epilog -> {Orange, Apply[Sequence, Table[Line[{{q[[i]], 0}, {q[[i]], PDF[𝒟, q[[i]]]}}], {i, 2, 5}]]}]Plot[PDF[𝒟, x], {x, 0, 6}, Ticks -> {Automatic, None}, MeshFunctions -> {#1&}, Mesh -> {Quantile[𝒟, Range[0.2, 0.8, 0.2]]}, MeshStyle -> Red, MeshShading -> ColorData[97, "ColorList"], PlotStyle -> Thick]data = RandomVariate[BinomialDistribution[10, 0.5], 40];Plot[Quantile[data, q], {q, 0, 1}, PlotRange -> {0, 10}]Plot[Quantile[data, q, {{1 / 2, 0}, {0, 1}}], {q, 0, 1}]dist = TukeyLambdaDistribution[1 / 3];Integrate[(UnitStep[2x + 1] /. {x -> Quantile[dist, p]}), {p, 0, 1}]在 Expectation 中使用该方法:
Expectation[UnitStep[2x + 1], xTukeyLambdaDistribution[1 / 3], Method -> "Quantile"]通过非均匀分布的分位数函数转化均匀分布,生成非均匀分布的随机数:
Q[p_] = Refine[Quantile[NormalDistribution[3, 1], p], 0 ≤ p ≤ 1]data = RandomVariate[TransformedDistribution[Q[p], pUniformDistribution[]], 10000];Show[
Histogram[data, 30, "PDF"],
Plot[PDF[NormalDistribution[3, 1], x], {x, -9, 9}, PlotStyle -> Thick]]data = TemporalData[TimeSeries, {{{0., 0.046491782116164254, 0.08903630113726002, 0.10513552796891892,
0.15836877340214242, 0.16762760021154957, 0.22262040271007824, 0.09229029166541514,
0.01638158916750626, -0.028243805037334938, 0.212763528740 ... 352256143162, 0.5558410175472224, 0.5068911071028394,
0.500082375411682}}, {{0, 1., 0.01}}, 1, {"Continuous", 1}, {"Continuous", 1}, 1,
{ValueDimensions -> 1, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];mq = MovingMap[Quantile[#, 1 / 3]&, data, .1];ListLinePlot[{data, mq}]data = RandomFunction[WienerProcess[], {0, 1, .01}, 10 ^ 3];times = Range[0, 1, .1];q1 = Map[{#, Quantile[data[#], .1]}&, times];
q3 = Map[{#, Quantile[data[#], .3]}&, times];
q7 = Map[{#, Quantile[data[#], .7]}&, times];Show[ListPlot[data], ListLinePlot[{q1, q3, q7}, PlotStyle -> {{Blue, Dotted}, {Blue, Dashed}, Blue}, PlotLegends -> LineLegend[{"q1", "q3", "q7"}, LegendLayout -> "ReversedColumn"]]]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]qs = Quantile[heights, {0.1, 0.5, 0.9}]n = Length[heights];
ListPlot[Join[{heights}, Table[{{0, q}, {n, q}}, {q, qs}]], Joined -> {False, True, True, True}, Filling -> {1 -> 0}, AxesLabel -> Automatic, PlotLegends -> {"heights", "q = 0.1", "q = 0.5", "q = 0.9"} ]属性和关系 (9)
使用 Quantile 求解分布的分位数:
Quantile[ExponentialDistribution[λ], {1 / 4, 1 / 2, 3 / 4}]Quartiles[ExponentialDistribution[λ]]% - %%在默认参数下,Quantile 总是返回列表框中的一个元素:
Quantile[{1, 2, 3, 4}, 1 / 2]Quartiles 给出列表的线性内插 Quantile 值:
data = RandomReal[10, 20];Quantile[data, {1 / 4, 1 / 2, 3 / 4}, {{1 / 2, 0}, {0, 1}}]Quartiles[data]InterquartileRange 是列表的线性内插 Quantile 值的差值:
data = RandomReal[10, 20];{q1, q2} = Quantile[data, {3 / 4, 1 / 4}, {{1 / 2, 0}, {0, 1}}];
q1 - q2InterquartileRange[data]QuartileDeviation 是列表的线性内插 Quantile 值的差值的一半:
data = RandomReal[10, 20];{q1, q2} = Quantile[data, {3 / 4, 1 / 4}, {{1 / 2, 0}, {0, 1}}];
(q1 - q2) / 2QuartileDeviation[data]QuartileSkewness 把线性内插 Quantile 值法作为偏差量的测量方法:
data = RandomReal[10, 20];{q1, q2, q3} = Quantile[data, {1 / 4, 1 / 2, 3 / 4}, {{1 / 2, 0}, {0, 1}}];
(q1 - 2q2 + q3) / (q3 - q1)QuartileSkewness[data]Quantile 对于分布数来说和 InverseCDF 等效:
Quantile[ParetoDistribution[k, α], q]InverseCDF[ParetoDistribution[k, α], q]QuantilePlot 绘制列表或者分布的四分位数图线:
dist = ExponentialDistribution[2];
data = RandomVariate[dist, 10 ^ 3];{QuantilePlot[data], QuantilePlot[dist]}BoxWhiskerChart 显示数据的特定四分位数:
BoxWhiskerChart[RandomVariate[NormalDistribution[0, 1], 100]]可能存在的问题 (4)
如果对数据进行计算,p 可以是 0 到 1 之间的任意数字:
Quantile[{1, 4, 8, 3, 2, 0, 8}, p]Quantile[{1, 4, 8, 3, 2, 0, 8}, 3]Quantile[NormalDistribution[μ, σ], p]Quantile[StableDistribution[0, 1.8, -0.5, 1, 2], p]Quantile[StableDistribution[0, 1.8, -0.5, 1, 2], 0.3]Quantile[CauchyDistribution[2, 3], p] /. {p -> 1. + I}Quantile[CauchyDistribution[2, 3], 1. + I]通过 Quantile 计算的数据的四分位数与通过 Quartiles 计算的结果并不总是一致:
data = RandomReal[10, 20];Quantile[data, {1 / 4, 1 / 2, 3 / 4}]Quartiles[data]%% - %指定 Quantile 中的线性插值参数:
Quantile[data, {1 / 4, 1 / 2, 3 / 4}, {{1 / 2, 0}, {0, 1}}]%%% - %巧妙范例 (1)
在 20、100 和 300 个样本时的 Quantile 估计值分布:
Quantile[ExponentialDistribution[0.9], 0.7]SmoothHistogram[Table[Quantile[RandomVariate[ExponentialDistribution[0.9], {s, 1000}], 0.7], {s, {20, 100, 300}}], Filling -> Axis, PlotLegends -> {20, 100, 300}, PlotRange -> {{0, 3}, Automatic}]历史
2003年引入 (5.0) | 在以下年份被更新:2007 (6.0) ▪ 2023 (13.3) ▪ 2024 (14.1)
文本
Wolfram Research (2003),Quantile,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Quantile.html (更新于 2024 年).
CMS
Wolfram 语言. 2003. "Quantile." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/Quantile.html.
APA
Wolfram 语言. (2003). Quantile. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Quantile.html 年
BibTeX
@misc{reference.wolfram_2026_quantile, author="Wolfram Research", title="{Quantile}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/Quantile.html}", note=[Accessed: 05-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_quantile, organization={Wolfram Research}, title={Quantile}, year={2024}, url={https://reference.wolfram.com/language/ref/Quantile.html}, note=[Accessed: 05-November-2026]}