主要内容

配件使用单变量分布累积概率

这个例子展示了如何使用最小二乘估计适合单变量分布的累积分布函数。这是一个普适的方法可用于情况下最大似然失败,例如一些模型,包括一个阈值参数。

最常见的方法拟合单变量分布数据是最大似然。但最大似然不工作在所有情况下,和其他评估方法,如矩量法,有时是必要的。当适用时,最大似然方法可能是更好的选择,因为它通常是更有效率的。但这里描述的方法提供了另一种工具,可以在需要的时候使用。

使用最小二乘法拟合指数分布

术语“最小二乘法”是最常用的拟合回归行或表面模型响应变量作为一个或多个预测变量的函数。这里描述的方法是一个非常不同的最小二乘法的应用:单变量分布拟合,只有一个变量。

首先,我们要模拟一些样例数据。我们将使用生成数据的指数分布。对这个例子的目的,在实践中,我们假设已知数据不是来自一个特定的模型。

rng(37岁,“旋风”);n = 100;x = exprnd (2 n 1);

接下来,计算经验累积分布函数(ECDF)的数据。这是一个简单的阶跃函数和累积概率的跳,p,每个数据点的1 / n x。

x = (x);p = ((-0.5 1: n)) / n;楼梯(x, p,“k -”);包含(“x”);ylabel (“累积概率(p)”);

图包含一个坐标轴对象。坐标轴对象包含x, ylabel累积概率(p)包含一个楼梯类型的对象。

我们将配合这些数据的指数分布。一个办法是找到指数分布的累积分布函数(CDF)最接近(在某种意义上是下面解释)的ECDF数据。指数CDF是p =公关{X < =} = 1 - exp (- X /亩)。转换到日志(1 - p) *μ= x给日志之间的线性关系(1 - p)和x。如果数据来自一个指数,我们应该看到,至少约,线性关系,如果我们把计算x和p值ECDF到方程。如果我们用最小二乘法来适应直线通过原点x和日志(1 - p),然后安装线代表“亲密”的指数分布数据。直线的斜率是一个估计的参数μ。

同样,我们可以认为y =日志(1 - p)作为一种“理想化的样本”标准(平均1)指数分布。这些理想化的值是等距的规模的概率。x和y的qq情节应该是近似线性如果数据来自一个指数分布,我们将符合最小二乘行通过原点x和y。

y =日志(1 - p);muHat x = y \
muHat = 1.8627

数据和拟合线的阴谋。

情节(x, y,“+”y * muHat y“r——”);包含(“x”);ylabel (“y =日志(1 - p)的);

图包含一个坐标轴对象。坐标轴对象包含x, y = ylabel日志(1 - p)包含2线类型的对象。一个或多个行显示的值只使用标记

注意,线性符合我们的平方和最小化错误在水平,或“x”,方向。这是因为值y =日志(1 - p)是决定性的,随机的x值。也可以回归y与x,或使用其他类型的线性适合,例如,加权回归,回归正交回归,甚至强劲。我们这里不会探索这些可能性。

相比较而言,数据由最大似然。

muMLE = expfit (x)
muMLE = 1.7894

现在情节untransformed上的两个估计分布累积概率。

楼梯(x, p,“k -”);持有xgrid = linspace (0, 1.1 * 100 (max (x)) ';情节(xgrid expcdf (xgrid muHat),“r——”、xgrid expcdf (xgrid muMLE),“b——”);持有包含(“x”);ylabel (“累积概率(p)”);传奇({“数据”,“LS配合”,毫升装的},“位置”,“东南”);

图包含一个坐标轴对象。坐标轴对象包含x, ylabel累积概率(p)包含3楼梯,类型的对象。这些对象表示数据,LS,毫升。

这两种方法给安装分布非常相似,尽管LS适合观测影响更大的尾巴的分布。

威布尔分布拟合

对于一个稍微复杂的例子,从威布尔分布,模拟一些示例数据,计算ECDF (x)。

n = 100;x = wblrnd (2, 1, n, 1);x = (x);p = ((-0.5 1: n)) / n;

符合威布尔分布这些数据,注意,威布尔的CDF实验组的p =公关X < = {X} = 1 - exp (- b (X / a) ^)。转换到日志(a) +日志(日志(1 - p)) * (1 / b) =日志(x)给出了一个线性关系,这一次之间的日志(日志(1 - p))和日志(x)。我们可以使用最小二乘直线转换后的规模从ECDF使用p和x,和这条线的斜率和截距导致a和b的估计。

计算lnx =日志(x);呆呆的=日志(日志(1 - p));保利= polyfit(呆呆的计算lnx 1);paramHat = [exp (poly(2)) 1 /聚(1)]
paramHat =1×22.1420 - 1.0843

图上的数据和拟合线改造规模。

情节(计算lnx,呆呆的,“+”日志(paramHat(1) +呆呆的/ paramHat(2),呆呆的,“r——”);包含(日志(x)的);ylabel (日志(日志(1 - p))”);

图包含一个坐标轴对象。坐标轴对象包含日志(x), ylabel日志(日志(1 - p))包含2线类型的对象。一个或多个行显示的值只使用标记

相比之下,符合数据由最大似然和情节上的两个估计分布untransformed规模。

paramMLE = wblfit (x)
paramMLE =1×22.1685 - 1.0372
楼梯(x, p,“k”);持有xgrid = linspace (0, 1.1 * 100 (max (x)) ';情节(xgrid wblcdf (xgrid paramHat (1) paramHat (2)),“r——”,xgrid, wblcdf (xgrid paramMLE (1) paramMLE (2)),“b——”);持有包含(“x”);ylabel (“累积概率(p)”);传奇({“数据”,“LS配合”,毫升装的},“位置”,“东南”);

图包含一个坐标轴对象。坐标轴对象包含x, ylabel累积概率(p)包含3楼梯,类型的对象。这些对象表示数据,LS,毫升。

一个阈值参数的例子

有时需要配合积极的像威布尔分布或对数正态阈值参数。例如,威布尔值随机变量需要在(0,正),和一个阈值参数,c,变化范围(c,正)。如果阈值参数是已知的,那么就没有困难。但如果阈值参数是未知的,它必须被估计。这些模型难以适应最大似然,可能可以有多个模式,甚至成为无限的参数值不合理的数据,所以最大似然通常不是一个好方法。但小最小二乘法程序之外,我们可以得到稳定的估计。

为了说明这一点,我们将模拟一些数据从一个带三个参数的威布尔分布,阈值。如上所述,我们假定为示例数据的目的不是已知来自一个特定的模型,而阈值是未知的。

n = 100;x = wblrnd (4 2 n, 1) + 4;嘘(x, 20);xlim ([0 16]);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。这个对象表示x。

我们如何适应一个带三个参数的威布尔分布对这些数据?如果我们知道阈值,1为例,我们可以减去这个值的数据,然后使用最小二乘方法估计威布尔的形状和尺度参数。

x = (x);p = ((-0.5 1: n)) / n;呆呆的=日志(日志(1 - p));logxm1 =日志(x - 1);poly1 = polyfit(日志(日志(1 - p)),日志(x - 1), 1);paramHat1 = [exp (poly1 (2) 1 / poly1 (1)]
paramHat1 =1×27.4305 - 4.5574
情节(logxm1,呆呆的,“b +”日志(paramHat1(1) +呆呆的/ paramHat1(2),呆呆的,“r——”);包含(“日志(x - 1)”);ylabel (日志(日志(1 - p))”);

图包含一个坐标轴对象。坐标轴对象包含日志(x - 1), ylabel日志(日志(1 - p))包含2线类型的对象。一个或多个行显示的值只使用标记

这不是一个很不错的选择——日志(x - 1)和日志(日志(1 - p))没有一个线性关系。当然,那是因为我们不知道正确的阈值。如果我们尝试减去不同的阈值,得到不同的情节和不同的参数估计。

logxm2 =日志(x - 2);poly2 = polyfit(日志(日志(1 - p)),日志(x - 2), 1);paramHat2 = [exp (poly2 (2) 1 / poly2 (1)]
paramHat2 =1×26.4046 - 3.7690
logxm4 =日志(* 4);poly4 = polyfit(日志(日志(1 - p)),日志(* 4),1);paramHat4 = [exp (poly4 (2) 1 / poly4 (1)]
paramHat4 =1×24.3530 - 1.9130
情节(logxm1,呆呆的,“b +”logxm2呆呆的,' r + 'logxm4呆呆的,g +的,日志(paramHat1(1)) +呆呆的/ paramHat1(2),呆呆的,“b——”,日志(paramHat2(1)) +呆呆的/ paramHat2(2),呆呆的,“r——”,日志(paramHat4(1)) +呆呆的/ paramHat4(2),呆呆的,“g——”);包含(“日志(x - c)”);ylabel (日志(日志(1 - p))”);传奇({“阈值= 1”“阈值= 2”“阈值= 4”},“位置”,“西北”);

图包含一个坐标轴对象。坐标轴对象包含日志(x - c), ylabel日志(日志(1 - p))包含6行类型的对象。一个或多个行显示的值只使用这些对象标记代表阈值= 1,阈值= 2,阈值= 4。

日志(* 4)之间的关系和日志(日志(1 - p))出现近似线性的。因为我们想看到的是一个近似的线性情节如果我们减去阈值参数,这是证据表明4可能是一个合理的阈值。另一方面,2和3的情节更系统地从线性不同,这是证据,这些值不一致的数据。

这个论点可以形式化。对于每一个临时的阈值参数值,相应的临时威布尔匹配特征可以作为参数值的R ^ 2价值最大化转换变量的线性回归日志(得到)和日志(日志(1 - p))。估计阈值参数,我们可以把这一步,最大化R ^ 2的值在所有可能的阈值。

r2 = @ (x, y) 1 -范数(y - polyval (polyfit (x, y, 1), x))。^ 2 /规范(y -意味着(y)) ^ 2;threshObj = @ (c) r2(日志(日志(1 - p)),日志(得到));聊天= fminbnd (threshObj,炮*分钟(x) .9999 *分钟(x));保利= polyfit(日志(日志(1 - p)),日志(x-cHat), 1);paramHat = [exp (poly(2)) 1 /聚(1)聊天)
paramHat =1×34.7448 2.3839 3.6029
计算lnx =日志(x-cHat);呆呆的=日志(日志(1 - p));情节(计算lnx,呆呆的,“b +”日志(paramHat(1) +呆呆的/ paramHat(2),呆呆的,“r——”);包含(的日志(x -聊天));ylabel (日志(日志(1 - p))”);

图包含一个坐标轴对象。坐标轴对象包含日志(x -聊天),ylabel日志(日志(1 - p))包含2线类型的对象。一个或多个行显示的值只使用标记

Non-Location-Scale家庭

指数分布是一个规模的家庭,在对数尺度,威布尔分布是location-scale家庭,这在这两个情况下最小二乘方法简单。适合location-scale分布的一般程序

  • 计算ECDF观测数据。

  • 变换分布的提供一些函数的数据之间的线性关系和一些累积概率的函数。这两个函数不涉及分布参数,但是做直线的斜率和截距。

  • 插入的值从ECDF x和p到转换提供,并使用最小二乘符合一条直线。

  • 求解分布参数的直线的斜率和截距。

我们也看到,拟合分布与额外location-scale家庭一个阈值参数是稍微更加困难。

但其他发行版不location-scale家庭,像伽马,有点棘手。没有转换的运作,将关系是线性的。然而,我们可以使用一个类似的想法,不过这一次在untransformed累积概率。p p情节是适当的方法拟合过程的可视化。

如果从ECDF策划反对实证概率参数模型拟合概率,沿着1:1的散射线从0到1表明,参数值定义一个分布,解释了观测数据,因为安装CDF接近经验提供。这个想法是为了找到的概率参数值,使情节尽可能接近1:1线。这是不可能的,如果不是一个好的模型的数据分布。如果p p图显示了一个系统偏离1:1线,然后模型可能是可疑的。然而,重要的是要记住,在这些情节并不是独立的,解释是不完全相同的回归残差图。

例如,我们将模拟一些数据和符合伽马分布。

n = 100;x = gamrnd (2, 1, n, 1);

计算ECDF (x)。

x = (x);pEmp = ((-0.5 1: n)) / n;

我们可以做一个概率图使用任何初始猜测伽马分布的参数,a = 1, b = 1,说。觉得不是很好,的概率参数提供不接近ECDF的概率。如果我们尝试了不同的a和b,我们会得到一个不同的散射p p阴谋,从1:1行有不同的差异。因为我们知道真正的a和b在这个例子中,我们将尝试这些值。

a0 = 1;b0 = 1;p0Fit = gamcdf (x, a0, b0);a1 = 2;b1 = 1;p1Fit = gamcdf (x, a1, b1);情节([0,1],[0,1],“k——”pEmp p0Fit,“b +”pEmp p1Fit,' r + ');包含(“经验概率”);ylabel (“(暂时)安装伽马概率”);传奇({“1:1线”,“a = 1, b = 1”,“= 2,b = 1”},“位置”,“东南”);

图包含一个坐标轴对象。坐标轴对象包含经验概率,ylabel(暂时)安装伽马概率包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表1:1线,a = 1, b = 1, b = 2, = 1。

第二组a和b的值为一个更好的情节,从而更兼容的数据,如果你是“兼容”,你怎么直接测量可以使p p阴谋。

使分散1:1线尽可能密切匹配,我们可以发现a和b的值最小化加权和距离平方的1:1线。定义权重的经验概率,和最低的中心情节和在极端最高。这些重量补偿的方差拟合概率,这是附近最高的值和最低的反面。这个加权最小二乘法程序定义了a和b的估计量。

重量= 1。/√(pEmp。* (1-pEmp));gammaObj = @ (params)和(重量。* (gamcdf (x, exp (params (1)), exp (params (2))) -pEmp)。^ 2);paramHat = fminsearch (gammaObj,日志(a1),日志(b1)]);paramHat = exp (paramHat)
paramHat =1×22.2759 - 0.9059
pFit = gamcdf (x, paramHat (1) paramHat (2));情节([0,1],[0,1],“k——”pEmp pFit,“b +”);包含(“经验概率”);ylabel (“安装伽马概率”);

图包含一个坐标轴对象。坐标轴对象包含经验概率,ylabel伽马概率包含2线类型的对象。一个或多个行显示的值只使用标记

注意location-scale情况下考虑之前,我们可以适应分布与一个单一的直线拟合。在这里,与阈值参数的示例中,我们不得不迭代找到最佳参数值。

模型Misspecification

p p情节也可以用于不同分布比较适合家庭。如果我们试着去适应这些数据的对数正态分布吗?

重量= 1。/√(pEmp。* (1-pEmp));LNobj = @ (params)和(重量。* (logncdf (x, params (1), exp (params (2))) -pEmp)。^ 2);mu0 =意味着(日志(x));sigma0 =性病(日志(x));paramHatLN = fminsearch (LNobj [mu0、日志(sigma0)]);paramHatLN (2) = exp (paramHatLN (2))
paramHatLN =1×20.5331 - 0.7038
pFitLN = logncdf (x, paramHatLN (1) paramHatLN (2));持有情节(pEmp pFitLN,“处方”);持有ylabel (“拟合概率”);传奇({“1:1线”,“安装伽马”,符合对数正态的},“位置”,“东南”);

图包含一个坐标轴对象。坐标轴对象包含经验概率,ylabel拟合概率包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表1:1线,γ,符合对数正态。

注意对数正态适应不同系统伽马适合的尾巴。在左尾生长更慢,死更慢的尾巴。γ似乎稍微更好地适应数据。

一个对数正态阈值参数的例子

对数正态分布是简单的最大似然适合,因为一旦日志转换应用于数据,最大似然拟合正常是一样的。但有时需要估计一个阈值参数对数正态模型。这样一个模型的可能性是无限的,所以最大似然不工作。然而,最小二乘法估计提供了一种方法。自从两个参数对数正态分布可以对数转换location-scale家庭,我们可以遵循相同的步骤在前面的示例中显示拟合与阈值参数威布尔分布。在这里,然而,我们会累积概率的估计,如前面的示例显示符合伽马分布。

为了说明这一点,我们将模拟一些数据从一个带三个参数的对数正态分布,与一个阈值。

n = 200;x = lognrnd (0。5 n, 1) + 10;嘘(x, 20);xlim (15 [8]);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。这个对象表示x。

计算x的ECDF,找出最佳参数对数正态分布的参数。

x = (x);pEmp = ((-0.5 1: n)) / n;重量= 1。/√(pEmp。* (1-pEmp));LN3obj = @ (params)和(重量。* (logncdf (x-params(3),参数个数(1),exp (params (2))) -pEmp)。^ 2);c0 = 0 *分钟(x);mu0 =意味着(日志(x-c0));sigma0 =性病(日志(x-c0));paramHat = fminsearch (LN3obj [mu0日志(sigma0), c0]);paramHat (2) = exp (paramHat (2))
paramHat =1×3-0.0698 0.5930 10.1045
pFit = logncdf (x-paramHat (3), paramHat (1) paramHat (2));情节(pEmp pFit,“b +”[0,1],[0,1],“k——”);包含(“经验概率”);ylabel (“安装3-param对数正态概率”);

图包含一个坐标轴对象。坐标轴对象包含经验概率,ylabel 3-param对数正态概率包含2线类型的对象。一个或多个行显示的值只使用标记

精度的措施

参数估计只是故事的一部分——一个模型适合也需要一些测量精确的估计,一般标准错误。与最大似然,通常的方法是使用信息矩阵和大样本渐近参数近似重复抽样估计量的协方差矩阵。不存在这样的理论对这些最小二乘估计。

然而,蒙特卡罗模拟提供了另一种方法来估计标准误差。如果我们使用拟合模型来生成大量的数据集,我们可以近似估计的标准误差与蒙特卡罗标准差。为简单起见,使用辅助拟合函数,logn3fit.m

estsSim = 0 (1000 3);i = 1:尺寸(estsSim 1) xSim = lognrnd (paramHat (1) paramHat (2), n, 1) + paramHat (3);estsSim(我:)= logn3fit (xSim);结束性病(estsSim)
ans =1×30.1542 0.0908 0.1303

它还可能是有用的估计的分布,检查如果近似正常的假设是合理的样本量,或检查的偏见。

次要情节(3,1,1),嘘(estsSim (: 1), 20);标题(引导日志的位置参数估计的);次要情节(3、1、2),嘘(estsSim (:, 2), 20);标题(“对数尺度参数引导估计”);次要情节(3、1,3),嘘(estsSim (:, 3), 20);标题(“估计阈值参数引导”);

图包含3轴对象。坐标轴对象1标题日志的位置参数引导估计包含一个补丁类型的对象。坐标轴对象2标题对数尺度参数引导估计包含一个补丁类型的对象。坐标轴对象3标题阈值参数引导估计包含一个补丁类型的对象。

显然,阈值参数的估计量是扭曲的。这是可以预料到的,因为它是最小数据值上界。另外两个柱状图表明,近似正常可能是一个可疑的假设的日志的位置参数(第一柱状图)。上面的计算标准错误必须被考虑到这一点,和通常的建设为置信区间可能不是合适的日志的位置和阈值参数。

模拟的方法估计接近参数值被用来产生模拟数据,表明这个过程大约是公正的样本大小,至少对参数值附近的估计。

[paramHat;意思是(estsSim)]
ans =2×3-0.0698 0.5930 10.1045 -0.0690 0.5926 10.0905

最后,我们也可以使用这个函数bootstrp计算引导标准误差估计。这些未做过任何改动参数假设数据。

@logn3fit estsBoot = bootstrp(1000年,x);性病(estsBoot)
ans =1×30.1490 0.0785 0.1180

引导标准蒙特卡罗计算错误是不远了。这并不奇怪,因为拟合模型是相同的一个示例数据的生成。

总结

这里描述的拟合方法是最大似然的替代品时,可以用来满足单变量分布最大似然未能提供有用的参数估计。一个重要的应用是在拟合分布涉及一个阈值参数,如带三个参数的对数正态。标准错误更难以计算极大似然估计,因为不存在解析近似,但仿真提供了一种可行的选择。

这里使用的p p情节来说明拟合方法是有用的在他们自己的权利,作为一个视觉指示时缺乏合适的配件单变量分布。