主要内容

曲线拟合与分布拟合

这个例子展示了如何进行曲线拟合和分布拟合,并讨论了什么时候每种方法是合适的。

曲线拟合与分布拟合的选择

曲线拟合和分布拟合是不同类型的数据分析。

  • 当您想要将响应变量建模为预测变量的函数时,请使用曲线拟合。

  • 如果要对单个变量的概率分布建模,请使用分布拟合。

曲线拟合

在下面的实验数据中,预测变量为时间,服用药物后的时间。响应变量是浓缩,即药物在血液中的浓度。假设只有响应数据浓缩受到实验误差的影响。

时间= [0.1 0.1 0.3 1.3 1.7 2.1 2.6 3.9...5.1 5.6 6.2 6.4 7.7 8.1 8.2 8.9 9.0 9.5...9.6 10.2 10.3 10.8 11.2 11.2 11.2 11.7 12.1 12.3...12.3 13.1 13.2 13.4 13.7 14.0 14.3 15.4 16.1 16.1...'; ';Conc = [0.01 0.08 0.13 0.16 0.55 0.90 1.11 1.62 1.79 1.59 ....1.83 1.68 2.09 2.17 2.66 2.08 2.26 1.65 1.70 2.39...2.08 2.02 1.65 1.96 1.91 1.30 1.62 1.57 1.32 1.56...1.36 1.05 1.29 1.32 1.20 1.10 0.88 0.63 0.69 0.69...0.49 0.53 0.42 0.48 0.41 0.27 0.36 0.33 0.17 0.20]';

假设你想模拟血液浓度随时间的变化浓缩时间.

绘图(时间、浓度、,“o”);xlabel(“时间”);伊莱贝尔(“血液浓度”);

图中包含一个坐标轴。轴包含一个线型对象。

假定浓缩遵循双参数威布尔曲线作为时间.威布尔曲线具有以下形式和参数:

Y = C ( x / A. ) ( B - 1. ) E - ( x / A. ) B ,

哪里 A. 是水平缩放, B 是形状参数,并且 C 是垂直缩放。

采用非线性最小二乘拟合威布尔模型。

modelFun = @ (p, x) p (3) . * (x / p (1)) ^ (p(2) 1)。* exp (- (x / p(1)) ^(2)页);startingVals = [10 2 5];nlModel = fitnlm(时间、浓缩的modelFun startingVals);

在数据上绘制威布尔曲线。

xgrid = linspace (20100 0) ';线(xgrid预测(nlModel xgrid),“颜色”,“r”);

图中包含一个轴。该轴包含两个类型为line的对象。

拟合的威布尔模型是有问题的。菲特尔姆假设实验误差是加性的,并且来自具有恒定方差的对称分布。然而,散点图显示误差方差与曲线高度成正比。此外,加性的对称误差意味着负血浓度测量是可能的。

一个更现实的假设是乘法误差在对数尺度上是对称的。在这个假设下,通过对数据两边取对数来拟合威布尔曲线。使用非线性最小二乘拟合曲线:

日志 ( Y ) = 日志 ( C ) + ( B - 1. ) 日志 ( x / A. ) - ( x / A. ) B .

nlModel2 = fitnlm(time,log(conc),@(p,x) log(modelFun(p,x)),startingVals);

将新曲线添加到现有的图中。

线(xgrid,exp(预测(nlModel2,xgrid)),“颜色”,[0 .5 0],“线型”,'--');传奇({“原始数据”,“加性误差模型”,“乘性误差模型”});

图形包含一个轴。轴包含3个类型为line的对象。这些对象表示原始数据、加法误差模型、乘法误差模型。

模型对象nlModel2包含精度的估计。最好的做法是检查模型的拟合优度。例如,在对数尺度上绘制残差图,以检查乘法误差的恒方差假设。

在本例中,使用乘法误差模型对模型预测的影响很小。有关模型类型影响更大的示例,请参见线性化拟合非线性模型的缺陷.

曲线拟合函数

  • 统计和机器学习工具箱™ 包括以下用于安装模型的功能:菲特尔姆对于非线性最小二乘模型,菲特格姆对于广义线性模型,fitrgp对于高斯过程回归模型,以及fitrsvm对于支持万博1manbetx向量机回归模型。

  • 曲线拟合工具箱™提供命令行和图形工具,简化曲线拟合任务。例如,工具箱提供了各种模型的初始系数值的自动选择,以及稳健的非参数拟合方法。

  • 最优化工具箱™具有执行复杂类型的曲线拟合分析的功能,例如分析带有系数约束的模型。

  • MATLAB®函数拟合拟合多项式模型,以及MATLAB函数fminsearch在其他类型的曲线拟合中很有用。

分布拟合

假设您想对电气元件的寿命分布进行建模。的变量生活测量50个相同电气部件的故障时间。

寿命=[6.2 16.1 16.3 19.0 12.2 8.1 8.8 5.9 7.3 8.2...16.1 12.8 9.8 11.3 5.1 10.8 6.7 1.2 8.3 2.3...4.3 2.9 14.8 4.6 3.1 13.6 14.5 5.2 5.7 6.5...5.3 6.4 3.5 11.4 9.3 12.4 18.3 15.9 4.0 10.4...8.7 3.0 12.1 3.9 6.5 3.4 8.5 0.9 9.9 7.9]';

用直方图可视化数据。

binWidth=2;lastVal=ceil(最大(寿命));BinEdge=0:binWidth:lastVal+1;h=直方图(寿命,BinEdge);xlabel(“时间失败”);伊莱贝尔(“频率”);ylim([010]);

图中包含一个坐标轴。坐标轴包含一个直方图类型的对象。

由于生命周期数据通常遵循威布尔分布,一种方法可能是使用前面曲线拟合示例中的威布尔曲线来拟合直方图。要尝试这种方法,将直方图转换为一组点(x,y),其中x是bin的中心,y是bin的高度,然后拟合这些点的曲线。

counts=histcounts(寿命,BinEdge);binCtrs=BinEdge(1:end-1)+binWidth/2;h.FaceColor=[.9.9];保持绘图(BINCTR、计数、,“o”);持有

图中包含一个轴。该轴包含两个直方图、直线类型的对象。

然而,将曲线拟合到直方图是有问题的,通常不推荐。

  1. 该过程违反了最小二乘拟合的基本假设。仓位计数为非负,这意味着测量误差不能对称。此外,仓位计数在尾部的可变性不同于在分布中心的可变性。最后,仓位计数有一个固定的和,这意味着它们不是独立的测量。

  2. 如果您将威布尔曲线拟合到柱状图的高度,则必须对曲线进行约束,因为直方图是经验概率密度函数的缩放版本(pdf)。

  3. 对于连续数据,将曲线拟合到直方图而不是数据会丢弃信息。

  4. 直方图中的条形高度依赖于箱边和箱宽的选择。

对于许多参数分布,最大似然法是估计参数的更好方法,因为它避免了这些问题。Weibull pdf的形式与Weibull曲线几乎相同:

Y = ( B / A. ) ( x / A. ) ( B - 1. ) E - ( x / A. ) B .

然而, B / A. 替换“比例”参数 C 因为函数的积分是1。使用最大似然拟合威布尔分布到数据,使用健身师并指定“威布尔”作为发行版名。与最小二乘法不同,最大似然法发现的Weibull pdf最好地匹配缩放的直方图,而不最小化pdf和柱高之间的平方差的总和。

pd=fitdist(寿命,“威布尔”);

绘制一个比例直方图的数据和叠加的拟合pdf。

h =直方图(生命、binEdges“归一化”,“pdf”,“脸色”,(。9。9。9]);包含(“时间失败”);伊莱贝尔(的概率密度);ylim([0.1]);xgrid=linspace(0,20100)”;pdfEst=pdf(pd,xgrid);line(xgrid,pdfEst)

图中包含一个轴。该轴包含两个直方图、直线类型的对象。

最佳实践是检查模型的拟合优度。

虽然通常不推荐将曲线拟合到直方图上,但在某些情况下,这个过程是合适的。例如,请参见拟合自定义单变量分布.

分布拟合函数

  • Statistics and Machine Learning Toolbox™包含此功能健身师用于将概率分布对象与数据拟合。它还包括专用的配件功能(如wblfit)对于使用最大似然法拟合参数分布,函数最大似然误差用于自定义分布拟合而无专用的拟合函数和函数ksdensity用于将非参数分布模型拟合到数据。

  • 统计和机器学习工具箱另外提供分配装配工它简化了分布拟合的许多任务,如生成可视化和诊断图。

  • 最优化工具箱™中的函数使您能够适应复杂的分布,包括对参数有约束的分布。

  • MATLAB®函数fminsearch提供最大似然分布拟合。

另见

|||||||||

相关的话题