主要内容

曲线配件和配电配件

本例展示了如何进行曲线拟合和分布拟合,并讨论了每种方法何时合适。

曲线拟合和分布拟合之间的选择

曲线配件和配电配件是不同类型的数据分析。

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

  • 当您想要建模单个变量的概率分布时,请使用分配拟合。

曲线拟合

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

时间= [0.1 0.1 0.3 0.3 1.3 1.7 2.1 2.6 3.9 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......16.4 16.4 16.7 16.7 16.5 18.6 18.1 18.5 19.3 19.7];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';

假设您希望将血液浓度模拟为时间的函数。阴谋conc时间

情节(时间,浓,“o”);Xlabel('时间');ylabel('血液浓度');

假使,假设conc遵循双参数Weibull曲线作为一个函数时间。威布尔曲线具有表单和参数

y = C X / 一种 B. - 1 E. - X / 一种 B.

在哪里 一种 是一个水平缩放, 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);

将Weibull曲线绘制到数据上。

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

拟合的威布尔模型存在问题。fitnlm.假设实验误差是附加的,并且来自具有恒定方差的对称分布。然而,散点图表明误差方差与曲线的高度成比例。此外,添加剂,对称误差意味着可能的血液浓度测量是可能的。

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

日志 y = 日志 C + B. - 1 日志 X / 一种 - X / 一种 B.

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

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

线(Xgrid,Exp(预测(NLModel2,XGrid)),“颜色”,[0 .5 0],“线型”' - ');传奇({“原始数据”'添加误差模型''乘法错误模型'});

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

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

曲线拟合函数

  • 统计和机器学习工具箱™包括用于拟合模型的这些功能:fitnlm.对于非线性最小二乘模型,Fitglm.对于广义的线性模型,fitrgp.对于高斯过程回归模型,和fitrsvm用于支持金宝app向量机回归模型。

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

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

  • MATLAB®功能Polyfit.适合多项式模型,以及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(max(life));Binges = 0:BinWidth:LastVal + 1;H =直方图(寿命,海水);Xlabel(“时间失败”);ylabel(“频率”);ylim([010]);

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

counts = histcounts(寿命,海水);Binctrs = Binedges(1:端1)+ BinWidth / 2;h.facecolor = [.9 .9 .9];抓住情节(BINTION,COUNTS,“o”);抓住

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

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

  2. 如果将Weibull曲线与条形高度拟合,则必须约束曲线,因为直方图是经验概率密度函数的缩放版本。

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

  4. 柱状图中的柱状高度取决于库边和库宽的选择。

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

y = B. / 一种 X / 一种 B. - 1 E. - X / 一种 B.

然而, B. / 一种 替换刻度参数 C 因为函数必须积分到1。若要使用极大似然拟合数据的威布尔分布,请使用Fitdist.并指定“威布尔”作为分发名称。与最小二乘不同,最大似然找到一个Weibull pdf,该pdf最好地匹配缩放的直方图,而不最小化pdf和条形高度之间的平方差之和。

pd = fitdist(生活,“威布尔”);

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

h =直方图(生命、binEdges'正常化''pdf''facecholor',(。9。9。9]);Xlabel(“时间失败”);ylabel(的概率密度);ylim([0 0.1]);xgrid = linspace (20100 0) ';pdfest = pdf(pd,xgrid);线(XGrid,PDFest)

最好的做法是检查模型的适合性。

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

分布拟合函数

  • 统计和机器学习工具箱™包括这个功能Fitdist.用于将概率分布对象拟合到数据。它还包括专用拟合功能(例如wblfit)使用最大可能性,函数拟合参数分布m用于拟合自定义分布,无需专用拟合函数,且函数ksdensity用于将非参数分布模型拟合到数据。

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

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

  • MATLAB®功能fminsearch.提供最大似然分布拟合。

也可以看看

|||||||||

相关的话题