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}} 経験的な累積分布関数の逆関数(デフォルト) {{0,0},{0,1}} 線形補間(カリフォルニア法) {{1/2,0},{0,0}} p n に最も近い番号が付いた要素 {{1/2,0},{0,1}} 線形補間(水文学者法) {{0,1},{0,1}} 平均ベースの推定(ワイブル法) {{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]Quantileは,入力がAssociationのときはその値に作用する:
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 Language. 2003. "Quantile." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/Quantile.html.
APA
Wolfram Language. (2003). Quantile. Wolfram Language & System Documentation Center. Retrieved from 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: 03-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: 03-November-2026]}