EmpiricalDistribution[{x1,x2,…}]
表示基于数据值 xi 的经验分布函数.
EmpiricalDistribution[{{x1,y1,…},{x2,y2,…},…}]
表示基于数据值 {xi,yi,…} 的多变量经验分布函数.
EmpiricalDistribution[{w1,w2,…}{d1,d2,…}]
表示一种经验分布函数,其中出现数据值 di 的权重为 wi.
EmpiricalDistribution
EmpiricalDistribution[{x1,x2,…}]
表示基于数据值 xi 的经验分布函数.
EmpiricalDistribution[{{x1,y1,…},{x2,y2,…},…}]
表示基于数据值 {xi,yi,…} 的多变量经验分布函数.
EmpiricalDistribution[{w1,w2,…}{d1,d2,…}]
表示一种经验分布函数,其中出现数据值 di 的权重为 wi.
更多信息
- EmpiricalDistribution 返回一个 DataDistribution 对象,其用法和任何其它概率分布相似.
- 值 x 的 EmpiricalDistribution 的累积分布函数由
给出. - EmpiricalDistribution 可与 Mean、CDF 和 RandomVariate 等函数联合使用.
范例
打开所有单元 关闭所有单元基本范例 (2)
data = RandomVariate[NormalDistribution[], 50];𝒟 = EmpiricalDistribution[data];{DiscretePlot[PDF[𝒟, x], {x, data}], DiscretePlot[CDF[𝒟, x], {x, -4, 4, .01}]}Moment[𝒟, 2]Quantile[𝒟, 0.95]data = BlockRandom[SeedRandom[0];RandomVariate[NormalDistribution[0, 2], {10, 2}]];𝒟 = EmpiricalDistribution[data];可视化计算出的 CDF:
Plot3D[Evaluate[CDF[𝒟, {x, y}]], {x, -5, 5}, {y, -5, 5}, ExclusionsStyle -> Gray, Mesh -> None, PlotPoints -> 50]Covariance[𝒟]//MatrixFormMoment[𝒟, {1, 2}]范围 (19)
基本使用 (10)
data1 = RandomVariate[NormalDistribution[], 10];
data2 = RandomVariate[NormalDistribution[], 100];𝒟1 = EmpiricalDistribution[data1];
𝒟2 = EmpiricalDistribution[data2];Table[Plot[{CDF[𝒟, x], CDF[NormalDistribution[], x]}, {x, -5, 5}, Exclusions -> None], {𝒟, {𝒟1, 𝒟2}}]qa = QuantityArray[RandomReal[{45, 80}, 10 ^ 3], "Seconds"]𝒟 = EmpiricalDistribution[qa]#[𝒟]& /@ {Mean, Variance, Skewness, Kurtosis}data = {2, √3, Pi, E, Log[5], 1, 2Pi};𝒟 = EmpiricalDistribution[data];CDF[𝒟, x]//PiecewiseExpanddata = {1, 2, 3, 4, 5};
weights = {5, 4, 3, 2, 1};𝒟1 = EmpiricalDistribution[data];
𝒟2 = EmpiricalDistribution[weights -> data];Table[DiscretePlot[CDF[𝒟, x], {x, 0, 10, .01}], {𝒟, {𝒟1, 𝒟2}}]data = Range[5];
weights = Array[w, 5];𝒟 = EmpiricalDistribution[weights -> data];Moment[𝒟, r]CDF[𝒟, 4]data1 = RandomVariate[BinormalDistribution[.5], 5];
data2 = RandomVariate[BinormalDistribution[.5], 100];𝒟1 = EmpiricalDistribution[data1];
𝒟2 = EmpiricalDistribution[data2];Table[Plot3D[CDF[𝒟, {x, y}], {x, -5, 5}, {y, -5, 5}, Exclusions -> None, ColorFunction -> "AlpineColors"], {𝒟, {𝒟1, 𝒟2}}]data = RandomVariate[BinormalDistribution[.5], 5];
weights = Range[5];𝒟1 = EmpiricalDistribution[data];
𝒟2 = EmpiricalDistribution[weights -> data];Table[Plot3D[CDF[𝒟, {x, y}], {x, -5, 5}, {y, -5, 5}, Exclusions -> None, ColorFunction -> "SandyTerrain"], {𝒟, {𝒟1, 𝒟2}}]data = RandomVariate[NormalDistribution[], {25, 3}];𝒟 = EmpiricalDistribution[data];Table[DiscretePlot[Evaluate[CDF[MarginalDistribution[𝒟, i], x]], {x, -4, 4, .01}, PlotLabel -> i], {i, 3}]Table[Plot3D[Evaluate[CDF[MarginalDistribution[𝒟, i], {x, y}]], {x, -4, 4}, {y, -4, 4}, Exclusions -> None, ColorFunction -> "DarkRainbow", PlotLabel -> i], {i, Subsets[Range[3], {2}]}]EmpiricalDistribution 只当输入是 TimeSeries 时作用于数值:
ts = TemporalData[TimeSeries, {{{0.28997620491523546, 0.21469930011788044, 0.46098352552570165,
0.24470387685580416, 0.14486640814874496, 0.5709045541820718, 0.3328911094711541,
0.32651519192444917, 0.25437382941700937, 0.46257184080167396, 0. ... 3011563444, 111.83615205759298,
112.05218999953303, 112.0628205040245, 112.14947462367655, 112.61704830425128}}}, 1,
{"Continuous", 1}, {"Discrete", 1}, 1,
{ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False, 10.1];res1 = EmpiricalDistribution[ts]res2 = EmpiricalDistribution[ts["Values"]]res1 == res2EmpiricalDistribution 当输入是 TemporalData 时,作用于所有数值:
td = TemporalData[«4»];res1 = EmpiricalDistribution[td]res2 = EmpiricalDistribution[td["ValueList"]//Flatten]res1 == res2分布属性 (9)
𝒟 = EmpiricalDistribution[data = RandomVariate[NormalDistribution[], 25]];PDF 与 HazardFunction 是离散的:
Table[DiscretePlot[f[𝒟, x], {x, data}, PlotLabel -> f], {f, {PDF, HazardFunction}}]CDF 和 SurvivalFunction 为分段函数,在各段均为常数:
Table[DiscretePlot[f[𝒟, x], {x, -4, 4, .01}, PlotLabel -> f], {f, {CDF, SurvivalFunction}}]𝒟 = EmpiricalDistribution[RandomVariate[NormalDistribution[], 25]];{Mean[𝒟], Variance[𝒟], Skewness[𝒟], Kurtosis[𝒟]}Table[Moment[𝒟, k], {k, 4}]Table[CentralMoment[𝒟, k], {k, 4}]Table[Cumulant[𝒟, k], {k, 4}]Table[FactorialMoment[𝒟, k], {k, 4}]𝒟 = EmpiricalDistribution[RandomVariate[CauchyDistribution[0, 1], 100]];Plot[Quantile[𝒟, x]//Evaluate, {x, 0, 1}, Exclusions -> None, Filling -> Axis]Quartiles[𝒟]InterquartileRange[𝒟]Quantile[𝒟, {0.05, 0.95}]Median[𝒟]𝒟 = EmpiricalDistribution[RandomReal[ChiSquareDistribution[2], 10 ^ 3]];Show[Histogram[RandomVariate[𝒟, 10 ^ 4], Automatic, "ProbabilityDensity"], Plot[PDF[ChiSquareDistribution[2], x], {x, 0, 10}, PlotStyle -> Thick]]𝒟 = EmpiricalDistribution[RandomVariate[NormalDistribution[], 100]];Probability[x > 2, x𝒟]Expectation[x^2 - 3x + 2, x𝒟]𝒟 = EmpiricalDistribution[RandomVariate[NormalDistribution[], 10]];MomentGeneratingFunction[𝒟, t]CharacteristicFunction[𝒟, t]𝒟 = EmpiricalDistribution[dat = RandomVariate[BinormalDistribution[.5], 10]];CDF 和 SurvivalFunction 为分段函数,在各段均为常数:
Table[Plot3D[f[𝒟, {x, y}]//Evaluate, {x, -4, 4}, {y, -4, 4}, Exclusions -> None, PlotLabel -> f, ColorFunction -> "DarkRainbow"], {f, {CDF, SurvivalFunction}}]𝒟 = EmpiricalDistribution[d = RandomVariate[BinormalDistribution[.2], 100]];{Mean[𝒟], Variance[𝒟]}Covariance[𝒟]//MatrixFormCorrelation[𝒟]//MatrixFormMoment[𝒟, {1, 2}]CentralMoment[𝒟, {1, 2}]Cumulant[𝒟, {1, 2}]FactorialMoment[𝒟, {1, 2}]𝒟 = EmpiricalDistribution[RandomVariate[BinormalDistribution[.5], 1000]];ListPlot[RandomVariate[𝒟, 100]]应用 (8)
data = RandomVariate[ParetoDistribution[1, 2], 25];𝒟 = EmpiricalDistribution[data];Plot[{CDF[𝒟, x], CDF[ParetoDistribution[1, 2], x]}, {x, 0, 10}]data = RandomVariate[𝒹 = MultinormalDistribution[{0, 0}, IdentityMatrix[2]], 100];𝒟 = EmpiricalDistribution[data];Plot3D[CDF[#, {x, y}], {x, -3, 3}, {y, -3, 3}, Exclusions -> None, Mesh -> None]& /@ {𝒟, 𝒹}Plot3D[CDF[𝒟, {x, y}] - CDF[𝒹, {x, y}], {x, -3, 3}, {y, -3, 3}, Exclusions -> None, ColorFunction -> "DarkRainbow", PlotRange -> {Full, Full, {-0.1, 0.1}}]用 SmoothKernelDistribution 生成平滑的表示:
data = RandomVariate[MixtureDistribution[{2 / 3, 1 / 3}, {NormalDistribution[-1, 1], NormalDistribution[0, 1]}], 15];Subscript[𝒟, e] = {"Empirical", EmpiricalDistribution[data]};
Subscript[𝒟, s] = {"Smoothed", SmoothKernelDistribution[data]};Table[DiscretePlot[CDF[𝒟[[2]], x], {x, -4, 4, .01}, PlotLabel -> 𝒟[[1]]], {𝒟, {Subscript[𝒟, e], Subscript[𝒟, s]}}]利用以数据为各区间的分界符的 HistogramDistribution 创建 EmpiricalDistribution 的一个线性插值:
data = RandomVariate[MixtureDistribution[{2 / 3, 1 / 3}, {NormalDistribution[-1, 1], NormalDistribution[0, 1]}], 10];Subscript[𝒟, e] = {"Empirical", EmpiricalDistribution[data]};
Subscript[𝒟, h] = {"Histogram", HistogramDistribution[data, {Union@data}]};Table[DiscretePlot[CDF[𝒟[[2]], x], {x, -4, 4, .01}, PlotLabel -> 𝒟[[1]]], {𝒟, {Subscript[𝒟, e], Subscript[𝒟, h]}}]在1861年以笔名 Quintus Curtius Snodgrass 发表的10封书信被认为是马克吐温的亲笔. 将这些书信的长度分布与 马克吐温的某些作品比较:
ExampleData[{"Statistics", "MarkTwainAuthorship"}, "ColumnDescriptions"]mTwain = ExampleData[{"Statistics", "MarkTwainAuthorship"}][[All, {1, 2}]];
QCS = ExampleData[{"Statistics", "MarkTwainAuthorship"}][[All, {1, 3}]];Twain = EmpiricalDistribution[mTwain[[All, 2]] -> mTwain[[All, 1]]];
Subscript[𝒟, QCS] = EmpiricalDistribution[QCS[[All, 2]] -> QCS[[All, 1]]];
Subscript[𝒟, Eng] = EmpiricalDistribution[StringLength /@ WordData[All]];Table[Plot[{CDF[Twain, x], CDF[𝒟, x]}, {x, 0, 30}, PlotRange -> All, Exclusions -> None], {𝒟, {Subscript[𝒟, QCS], Subscript[𝒟, Eng]}}]twain = Flatten[Table[ConstantArray[i[[1]], i[[2]]], {i, mTwain}]];
qcs = Flatten[Table[ConstantArray[i[[1]], i[[2]]], {i, QCS}]];DistributionFitTest[twain, qcs, "TestDataTable"]ExampleData[{"Statistics", "ScottishHillRaces"}, "ColumnDescriptions"]data = QuantityArray[ExampleData[{"Statistics", "ScottishHillRaces"}][[All, {3, 4}]], {"Feet", "Minutes"}];ListPlot[data, AxesLabel -> Automatic]medEG = Median[data[[All, 1]]]nd = Normal[data];
Subscript[𝒟, HighRoad] = EmpiricalDistribution[Cases[nd, {eg_ /; eg > medEG, t_} :> t]];
Subscript[𝒟, LowRoad] = EmpiricalDistribution[Cases[nd, {eg_ /; eg <= medEG, t_} :> t]];Plot[{CDF[Subscript[𝒟, HighRoad], Quantity[x, "Minutes"]], CDF[Subscript[𝒟, LowRoad], Quantity[x, "Minutes"]]}, {x, 0, 250}, Exclusions -> None, Filling -> Axis, PlotRange -> {0, 1}, AxesLabel -> {"min"}, PlotLegends -> {"SubscriptBox[𝒟, HighRoad]", "SubscriptBox[𝒟, LowRoad]"}]{Median[Subscript[𝒟, HighRoad]], Median[Subscript[𝒟, LowRoad]]}{QuartileDeviation[Subscript[𝒟, HighRoad]], QuartileDeviation[Subscript[𝒟, LowRoad]]}国立卫生研究院估计有 2% 的人口患有某种疾病. 针对这种疾病的检验表明该疾病出现的概率为 95%,其中假阳性的比例为 5%. 假设某病人经检验发现结果为阳性,求该病人的确患有该疾病的概率:
sick = {1, 1, 0, 0};
positive = {1, 0, 1, 0};𝒟 = EmpiricalDistribution[{p1, p2, p3, p4} -> Transpose[{sick, positive}]]eqs = {Probability[s == 1, {s, p}𝒟] == (2/100), Probability[p == 1s == 1, {s, p}𝒟] == (95/100), Probability[p == 1s == 0, {s, p}𝒟] == (5/100)}sol = Solve[eqs~Join~{p1 + p2 + p3 + p4 == 1}, {p1, p2, p3, p4}]//NProbability[s == 1p == 1, {s, p}𝒟] /. sol[[1]]随机选择21个学生参加一个新组织的阅读辅导项目. 另外,有23个学生作为对照小组接受传统的阅读辅导. 对这两个小组分别记录学生的阅读测验得分. 对这些得分执行一次基于排列的检验,以确定新组织的阅读辅导项目是否成功:
treatment = {24, 61, 59, 46, 43, 53, 43, 44, 52, 43, 57, 49, 58, 67, 62, 57, 56, 33, 71, 49, 54};
control = {42, 33, 46, 37, 62, 20, 43, 41, 10, 42, 53, 48, 55, 19, 17, 55, 37, 85, 26, 54, 60, 28, 42};testStatistic = Mean[treatment] - Mean[control]//Npermute[treat_, cont_, nPerm_] := Table[With[{sample = RandomSample[Join[treat, cont]]}, Mean[Take[sample, Length[treat]] - Mean[Drop[sample, Length[treat]]]]], {nPerm}]𝒟0 = permute[treatment, control, 25000];Histogram[𝒟0, Automatic, "PDF"]在 5% 显著性水平下,下面证明了新组织的阅读辅导项目的确会带来不同的效果:
empP[tstat_, 𝒟0_] := N@Probability[x ≥ tstat, xEmpiricalDistribution[𝒟0]]empP[testStatistic, 𝒟0]LocationTest 可用于直接进行假设检验:
LocationTest[{treatment, control}, AlternativeHypothesis -> "Greater"]属性和关系 (8)
dist = EmpiricalDistribution[Range[10]];ListPlot[RandomVariate[dist, 1000]]EmpiricalDistribution 是底层函数的一致估计量:
data = Table[RandomReal[d = NormalDistribution[], i], {i, {5, 10, 50, 100, 500, 1000}}];dists = EmpiricalDistribution /@ data;Table[Plot[{CDF[i, x], CDF[d, x]}, {x, -4, 4}, PlotLabel -> Row[{i[[4]], " points"}], Exclusions -> None], {i, dists}]data = RandomVariate[NormalDistribution[], 10];𝒟 = EmpiricalDistribution[data];Mean[𝒟] == Mean[data]Moment[𝒟, r] == Moment[data, r]//SimplifyVariance[𝒟] == Variance[data]CentralMoment[𝒟, 2] == Variance[𝒟]分位数等价于直接应用于数据的 Quantile:
𝒟 = EmpiricalDistribution[data = RandomVariate[NormalDistribution[], 7]];rng = Range[0, 1, 1 / 99];Total[Quantile[𝒟, rng] / Quantile[data, rng]] / 100EmpiricalDistribution 等价于无删截的 SurvivalDistribution:
data = Range[100];d1 = EmpiricalDistribution[data];d2 = SurvivalDistribution[data];Total[Table[PDF[d1, x] - PDF[d2, x], {x, DistributionDomain[d1]}]]将数据值的交集用作 HistogramDistribution 的箱分界符:
data = {1, 1, 2, 2, 3, 4, 4, 4, 5, 6, 7};𝒟1 = HistogramDistribution[data, {Join[Union[data], {Max[data] + 1}]}];
𝒟2 = EmpiricalDistribution[data];生成的概率密度函数是 EmpiricalDistribution 的概率密度函数的零阶插值:
Show[DiscretePlot[PDF[𝒟2, x], {x, data}, PlotStyle -> Green], Plot[PDF[𝒟1, x], {x, 0, 9}, Exclusions -> None]]将 N 应用于精确数据可以减少内存消耗:
data = RandomChoice[{π, E, Sin[5], Sqrt[2], 1}, 10 ^ 4];c = RandomChoice[Range[500], 10 ^ 4];𝒟 = EmpiricalDistribution[c data];
Subscript[𝒟, Num] = EmpiricalDistribution[N[c data]];{ByteCount[𝒟], ByteCount[Subscript[𝒟, Num]]}Table[Plot[CDF[i, x], {x, 0, 10}, Exclusions -> None], {i, {𝒟, Subscript[𝒟, Num]}}]积分上的 EmpiricalDistribution 可以使用 ProbabilityDistribution 指定:
edist = EmpiricalDistribution[{1 / 6, 1 / 3, 1 / 3, 1 / 6} -> {1, 2, 3, 4}]pdist = ProbabilityDistribution[(1/6)Boole[x == 1 || x == 4] + (1/3)Boole[x == 2 || x == 3], {x, 1, 4, 1}]PDF[edist, x] == PDF[pdist, x]//Simplify文本
Wolfram Research (2010),EmpiricalDistribution,Wolfram 语言函数,https://reference.wolfram.com/language/ref/EmpiricalDistribution.html (更新于 2016 年).
CMS
Wolfram 语言. 2010. "EmpiricalDistribution." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2016. https://reference.wolfram.com/language/ref/EmpiricalDistribution.html.
APA
Wolfram 语言. (2010). EmpiricalDistribution. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/EmpiricalDistribution.html 年
BibTeX
@misc{reference.wolfram_2026_empiricaldistribution, author="Wolfram Research", title="{EmpiricalDistribution}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/EmpiricalDistribution.html}", note=[Accessed: 10-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_empiricaldistribution, organization={Wolfram Research}, title={EmpiricalDistribution}, year={2016}, url={https://reference.wolfram.com/language/ref/EmpiricalDistribution.html}, note=[Accessed: 10-September-2026]}