主要内容

非参数估计的累积分布函数以及它们的倒数

这个例子显示了如何估计累积分布函数(CDF)从非参数和半参数方法中的数据。这也说明了反演方法用于生成随机数的估计提供。统计和机器学习工具箱™包括20多个随机数字生成器函数参数单变量概率分布。这些函数允许您生成随机输入的各种各样的模拟,然而,在有必要的情况下生成随机值来模拟数据不是由一个简单的参数描述的家庭。

工具箱还包括功能pearsrndjohnsrnd,生成随机值,而无需指定参数分布的画,这些函数允许您指定一个分布的时刻或分位数,分别。

然而,仍然有情况需要更多的灵活性,以生成随机值,“模仿”数据收集更加密切。在这种情况下,您可能使用一个非参数估计提供的这些数据,并使用生成随机值的反演方法。反演方法包括生成均匀随机值单位间隔,并改变他们所需的分配使用逆CDF的分布。

从相反的角度来看,它有时需要使用非参数的估计提供观测数据转换到单位间隔,给他们一个近似均匀分布。

ecdf函数计算一种非参数CDF估计的经验提供一个梯级的函数。这个例子演示了一些流畅的选择,这可能是更适合模拟或转换数据从一个连续分布。

出于演示的目的,这里有一些简单的模拟数据。只有25观察,少数选择使示例中的情节更容易阅读。数据也分类简化绘图。

rng(19日“旋风”);n = 25;x = evrnd (3、1, n, 1);x = (x);嘘(x, 2: .5:4.5);包含(“x”);ylabel (“频率”);

一个分段线性非参数估计

ecdf函数提供了一个简单的方法来计算和情节的“梯级”经验提供数据。在最简单的情况下,这个估计使得离散跳跃在每个数据点的1 / n。

[Fi, xi] = ecdf (x);楼梯(xi, Fi,“r”);xlim (-2.5 [5]);包含(“x”);ylabel (“F (x)”);

这估计是很多的有用的用途,包括调查数据参数模型的拟合优度。其离散性,然而,可能使它不适合使用在经验将连续数据或从单位时间间隔。

它简单修改经验提供解决这一问题。而离散的1 / n跳跃在每一个数据点,定义一个函数,这个函数是分段线性,断点在跳跃的中点。的高度在每个数据点然后[1/2n, 3/2 n,……(n-1/2) / n],而不是[(1 / n) (2 / n),…1)。使用的输出ecdf计算这些断点,然后“连接这些点”来定义分段线性函数。

xj = xi(2:结束);Fj = (Fi (1: end-1) + Fi(2:结束))/ 2;持有情节(Fj xj,“b”。xj,陆地,“b -”);持有传奇({“ECDF”“断点”分段线性估计的},“位置”,“西北”);

因为ecdf妥善处理重复值和审查,这个计算工作即使在情况下比这个例子更复杂的数据。

以来的最小数据点对应于一个高度1/2n, 1-1/2n最大的,第一个和最后一个线性段必须扩展超出了数据,使函数达到0和1。

xj = [xj (1) Fj (1) * (xj (2) xj (1) / ((Fj (2) Fj (1)));xj;xj (n) + (1-Fj (n)) * ((xj (n) xj (n - 1) / (Fj (n) Fj (n - 1))));Fj = [0;Fj;1);持有情节(Fj xj,“b -”,“HandleVisibility”,“关闭”);持有

这个分段线性函数提供了一个非参数估计的CDF实验组的连续和对称的。评估在点以外的原始数据是线性插值,它可以方便地定义一个匿名函数。

F = @ (y) interp1 (Fj xj, y,“线性”,“extrap”);y = linspace (1、3.75, 10);情节(Fj xj,“b -”,y, F (y),“柯”);xlim (-2.5 [5]);包含(“x”);ylabel (“F (x)”);

一个分段线性非参数逆CDF实验组的估计

您可以使用相同的计算来计算逆CDF的非参数估计。事实上,逆CDF估计只是提供估算轴的交换。

楼梯(Fi, [xi(2:结束);习(结束),“r”);持有情节(Fj, xj,“b -”);持有ylim (-2.5 [5]);ylabel (“x”);包含(“F (x)”);传奇({“ECDF”分段线性估计的},“位置”,“西北”);

评估这一非参数逆提供点除了原来的断点又只是一个线性插值的问题。例如,生成统一的随机值和使用提供估计将他们带回你的原始观测数据的规模。这是反演方法。

Finv = @ (u) interp1 (Fj xj, u,“线性”,“extrap”);u =兰德(10000 1);嘘(Finv (u), 2: .25:4.5);包含(“x”);ylabel (“频率”);

注意,这个模拟数据的直方图分布比原始数据的直方图。这是由于,在某种程度上,更大的样本量,原始数据只包含25个值。但也因为分段线性CDF估计,实际上,“传播”的最初的一段时间内观察,而且在地区各个观测布置得井然有序。

例如,两个人观察左零对应一个宽,平地区低密度的模拟数据。相比之下,在数据密集的地区,对正确的尾巴,例如,分段线性CDF估计“利差”一定程度上的观察。在这个意义上,方法执行一个简单的版本被称为可变带宽平滑。然而,尽管平滑,模拟数据保留最原始数据的特性,即。,高和低密度的区域。

内核提供的估计和逆CDF

而不是评估提供使用分段线性函数,您可以执行内核评估使用ksdensity函数光滑非参数估计。虽然它通常用于非参数密度估计,ksdensity也可以估计其他功能。例如,单位时间将你的原始数据,用它来估计提供。

F = ksdensity (x, x,“函数”,“提供”,“宽度”,.35点);楼梯(xi, Fi,“r”);持有情节(x, F,“b”。);持有xlim (-2.5 [5]);包含(“x”);ylabel (“F (x)”);传奇({“ECDF”“内核估计”},“位置”,“西北”);

ksdensity还提供了一个方便的方式来评估内核提供估计除了原始数据点。例如,情节估计作为一个平滑的曲线。

y = linspace (-2.5, 1000);= ksdensity (x, y,财政年度“函数”,“提供”,“宽度”,.35点);楼梯(xi, Fi,“r”);持有情节(y,财政年度,“b -”);持有传奇({“ECDF”“内核估计”},“位置”,“西北”);

ksdensity使用带宽参数来控制的平滑估计的计算量,而且可以让ksdensity选择一个默认值。这里的示例使用一个相当小的带宽限制的平滑。即便如此,内核估计不遵循ECDF一样密切分段线性估计。

估计的一种方法逆CDF使用内核估计计算内核提供估计的网格点生成的原始数据,然后使用相同的过程的分段线性估计。例如,绘制逆CDF内核估计光滑曲线,简单地交换轴。

楼梯(Fi, [xi(2:结束);习(结束),“r”);持有情节(财政年度,y,“b -”);持有ylim (-2.5 [5]);ylabel (“x”);包含(“F (x)”);传奇({“ECDF”“内核估计”},“位置”,“西北”);

将均匀随机值原始数据的规模,使用网格提供估计的插入。

Finv = @ (u) interp1(财政年度,y, u,“线性”,“extrap”);嘘(Finv (u), -2.5: .25:5);包含(“x”);ylabel (“频率”);

注意,使用内核提供的模拟数据估计没有完全“平滑”两个人观察左零呈现在原始的数据。内核估计使用一个固定的带宽。与特定的带宽使用的值在这个例子中,这两个观测结果导致两个局部区域的密度,而不是一个宽的平坦地区的分段线性估计。相比之下,内核估计平滑数据更多的正确的尾巴比分段线性估计。

使用内核生成模拟数据估计的另一种方法是使用ksdensity计算估计的直接逆CDF,再次使用“函数”参数。例如,将这些统一的价值观。

r = ksdensity (x, u,“函数”,“icdf”,“宽度”,.35点);

然而,使用后一种方法可以耗时的大量数据。更简单,但等效方法是重新取样的替代原始数据并添加一些适当的随机噪声。

r = datasample (x, 100000,“替换”,真正的)+ normrnd(100000 .35点0,1);

如果你产生足够的随机值,结果的柱状图的核密度估计原始数据。

binwidth =升至;边缘= -2.5:binwidth: 6;点击率数据=边缘(1:end-1) + binwidth. / 2;数量= histc (r,边);数量=计数(1:end-1);栏(点击率数据,counts. /((计数)。* binwidth总和),1,“FaceColor”,(。9。9。9]);持有xgrid =边(1):1。:边缘(结束);xgrid fgrid = ksdensity (x,“函数”,“pdf”,“宽度”3);情节(xgrid fgrid,“k -”);持有包含(“x”);ylabel (“f (x)”);

它强调半参数估计

它强调非参数估计需要大量的数据来实现合理的精度。此外,数据只影响评估的“本地”。That is, in regions where there is a high density of data, the estimate is based on more observations than in regions where there is a low density of data. In particular, nonparametric estimates do not perform well in the tails of a distribution, where data are sparse by definition.

拟合数据使用半参数模型paretotails函数允许最好的非参数和参数的世界。“中心”的分布,使用分段线性的模型提供的非参数估计。在每一个尾巴,它使用一个广义帕累托分布。广义帕累托尾通常是用作模型(s)的数据集,虽然它是足够灵活,以适应各种分布的反面,它是足够约束,需要一些数据提供一个可信的和光滑的适合尾巴数据。

例如,您可以定义数据的“中心”作为中间的50%,并指定非参数估计之间的转换和帕累托适合发生.25和分位数数据。半参数模型的评估提供健康,使用适合的提供方法。

semipFit = paretotails (x,二十五分,综合成绩);
警告:问题拟合广义帕累托分布上的尾巴。最大似然已经聚集到参数空间的边界点。

警告是由于使用很少的数据——6分在每个尾巴在这种情况下,表明拟合广义帕累托分布上尾巴完全延伸到最小的观察,也没有进一步。你可以看到,在如下所示的直方图。在真实的应用程序中,您通常会有更多的数据,通常不会发生和警告。

(p, q) =边界(semipFit);y = linspace (4, 6, 1000);财政年度= cdf (semipFit y);情节(y,财政年度,“b -”p, q,,k +的);xlim (-6.5 [5]);包含(“x”);ylabel (“F (x)”);传奇({“Semi-parametric估计”“段边界”},“位置”,“西北”);

将均匀随机值回你的原始数据的规模,使用适合的icdf方法。

r = icdf (semipFit u);嘘(r, -6.5: .25:5);包含(“x”);ylabel (“频率”);

这半参数估计的反面平滑的数据中心,多由于参数模型中使用的反面。在这个意义上,估计是类似于分段线性估计超过内核估计。然而,也可以使用paretotails创建使用内核的半参数符合评估中心的数据。

结论

这个例子说明了三种方法计算非参数和半参数提供或逆CDF实验组的估计数据。三种方法对不同数量和类型的平滑数据。你选择哪一种方法取决于每个方法捕获或未能捕捉你考虑数据的重要特征。