主要内容

参数拟合

基于库模型的参数化拟合

参数拟合涉及为一个或多个模型寻找适合数据的系数(参数)。假设数据本质上是统计数据,并分为两个部分:

数据决定部分+随机组件

确定性分量由参数模型给出,而随机分量通常被描述为与数据相关的误差:

数据参数模型+错误

该模型是独立(预测)变量和一个或多个系数的函数。误差表示数据中遵循特定概率分布(通常为高斯分布)的随机变化。这些变化可能来自许多不同的来源,但在处理测量数据时,它们总是在某种程度上存在。系统变化也可能存在,但它们可能导致拟合模型不能很好地表示数据。

模型系数通常具有物理意义。例如,假设您收集了与放射性核素的单一衰变模式相对应的数据,并希望估计其半衰期(T1/2)腐烂。放射性衰变定律指出放射性物质的活性随时间呈指数衰减。因此,拟合使用的模型为

y y 0 e λ t

在哪里y0是一次原子核的数目t= 0, λ为衰减常数。数据可以用

数据 y 0 e λ t + 错误

两者y0λ是由拟合估计的系数。因为T1/2=ln(2)/λ,衰变常数的拟合值产生拟合半衰期。然而,由于数据包含一些误差,因此无法根据数据准确确定方程的确定性成分。因此,系数和半衰期计算将具有一定的不确定性。如果不确定度可接受,则完成数据拟合。如果不可接受不确定性,则您可能必须采取措施,通过收集更多数据或通过减少测量误差、收集新数据并重复模型拟合来降低不确定性。

对于没有理论来规定模型的其他问题,您还可以通过添加或删除术语来修改模型,或者替换完全不同的模型。

曲线拟合工具箱™参数化库模型将在以下各节中进行描述。

交互式选择模型类型

从曲线拟合应用程序的下拉列表中选择要拟合的模型类型。

对于曲线或曲面,你可以使用什么适配类型?根据所选数据,拟合类别列表显示曲线或曲面类别。下表描述了曲线和曲面的选项。

适合类别 曲线 表面
回归模型
多项式 是(至9级) 是(5级以下)
指数 是的
傅里叶 是的
高斯 是的
权力 是的
理性的 是的
的正弦 是的
威布尔 是的
插值
插入剂 是的
方法:
最近的邻居
线性
立方
一种保形(PCHIP)
是的
方法:
最近的邻居
线性
立方
双谐波
利用薄板样条
平滑的
光滑样条 是的
洛维斯 是的
自定义
自定义公式 是的 是的
自定义线性拟合 是的

所有适合的类别,看看结果窗格以查看模型项、系数值和拟合优度统计信息。

提示

如果你的fit有问题,信息在结果窗格帮助您确定更好的设置。

选择合适的设置

“曲线拟合”应用程序提供了一系列拟合类型和设置,您可以更改这些类型和设置以尝试改善拟合效果。请先尝试默认值,然后尝试其他设置。

有关如何使用可用fit选项的概述,请参见指定适合选项和优化的起点

您可以在单个适合图形中尝试各种设置,也可以创建多个适合来进行比较。当你创建多个适合,你可以比较不同的适合类型和设置并排在曲线拟合应用程序在曲线拟合应用程序中创建多个拟合

以编程方式选择模型类型

的方法时,可以将库模型名指定为字符串适合函数。例如,指定一个二次方程poly2

F = fit(x, y, 'poly2')

看到曲线和曲面拟合的库模型列表查看所有可用的库模型名称。

你也可以用thefittype函数构造fittype对象,并使用fittype作为对适合函数。

使用fitoptions函数来找出你可以设置的参数,例如:

fitoptions (poly2)

例如,请参阅中列出的每个模型类型的小节交互式选择模型类型.有关创建和分析模型的所有功能的详细信息,请参见曲线曲面拟合

使用Normalize或Center and Scale

曲线拟合应用程序中的大多数模型类型共享中心和规模选项。选择此选项时,通过应用正常化设置为变量。在命令行中,您可以使用正常化的输入参数fitoptions函数。看到fitoptions参考页面。

一般来说,规范化输入(也称为预测数据),可以缓解不同尺度变量的数值问题。例如,假设您的表面适应输入是500-4500 r/min范围的发动机转速和0-1范围的发动机负载百分比。然后,中心和规模由于两个输入在规模上有很大的差异,所以通常会提高拟合程度。然而,如果您的输入是在相同的单位或类似的比例(例如,东和北的地理数据),那么中心和规模不太有用。当使用此选项对输入进行归一化时,拟合系数的值与原始数据相比会发生变化。

如果你拟合一条曲线或曲面来估计系数,或者系数有物理意义,清除中心和规模复选框。曲线拟合应用程序绘图使用原始比例尺有或没有中心和规模选择权。

在命令行中,若要将选项设置为“居中”并在拟合前缩放数据,请创建默认的“拟合选项”结构,然后单击“设置”正常化,然后选择以下选项:

options=fitoptions;options.Normal='on';options=Normalize:'on'排除:[1x0双精度]权重:[1x0双精度]方法:'None'load census f1 = fit(cdate,pop,'poly3',options)

指定适合选项和优化的起点

关于合适的选项

交互式适合选项将在下面的章节中进行描述。要以编程方式指定相同的适合选项,请参见在命令行指定适合选项

要在曲线拟合应用程序中交互式地指定拟合选项,请单击适合选项按钮以打开“适合选项”对话框。除了插值和平滑样条,所有拟合类别都有可配置的拟合选项。

可用选项取决于您是使用线性模型、非线性模型还是非参数拟合类型拟合数据:

  • 下面描述的所有选项都适用于非线性模型。

  • 较低的系数约束是对话框中唯一适合多项式线性模型的选项。对于多项式你可以设置健壮的在曲线拟合应用程序中,而不打开“适合选项”对话框。

  • 非参数拟合类型没有其他“拟合选项”对话框(插值、平滑样条曲线和lowess)。

下面显示了单项指数的拟合选项。系数的起始值和约束是针对人口普查数据的。

拟合方法与算法

  • 方法-拟合方法。

    该方法将根据您使用的库或自定义模型自动选择。对于线性模型,该方法为LinearLeastSquares.对于非线性模型,方法为NonlinearLeastSquares

  • 健壮的—指定是否使用鲁棒最小二乘拟合方法。

    • -不使用鲁棒拟合(默认)。

    • -适合默认的稳健方法(均权值)。

    • 拉尔-通过最小化最小绝对残差(LAR)进行拟合。

    • Bisquare-通过最小化残差的平方和进行拟合,并使用双平方权重减少异常值的权重。在大多数情况下,这是稳健拟合的最佳选择。

  • 算法-拟合过程使用的算法:

    • 信赖域—这是默认算法,如果指定,必须使用较低的系数约束。

    • Levenberg-Marquardt-如果信赖域算法不能产生合理的拟合,并且没有系数约束,请尝试Levenberg-Marquardt算法。

有限差分参数

  • DiffMinChange-有限差分雅可比矩阵系数变化最小。缺省值是10-8

  • DiffMaxChange-有限差分雅可比矩阵系数变化的最大值。默认值为0.1。

请注意,DiffMinChangeDiffMaxChange适用于:

  • 任何非线性的自定义方程,也就是你写的非线性方程

  • 部分非线性方程提供了曲线拟合工具箱软件

然而,DiffMinChangeDiffMaxChange不适用于任何线性方程。

满足收敛标准

  • MaxFunEvals-允许的最大功能(模型)评估数。默认值为600。

  • 麦克斯特-允许的最大拟合迭代次数。默认值为400。

  • TolFun-用于涉及函数(模型)值的停止条件的终止公差。缺省值是10-6

  • TolX-用于涉及系数的停止条件的终止公差。缺省值是10-6

系数参数

  • 系数-拟合未知系数的符号。

  • 曾经繁荣-系数的起始值。默认值取决于模型。对于rational、Weibull和自定义模型,默认值是在[0,1]范围内随机选择的。对于所有其他非线性库模型,初始值依赖于数据集,并采用启发式计算。见下面优化的起点。

  • 较低的-拟合系数的下界。该工具仅使用信赖域拟合算法的边界。大多数库模型的默认下限是,这表示系数不受约束。但是,少数模型具有有限的默认下限。例如,高斯模型的宽度参数受约束,因此它不能小于0。请参见下面的默认约束。

  • -拟合系数的上界。该工具仅使用信赖域拟合算法的边界。所有库模型的默认上限是Inf,这表明系数是不受约束的。

有关这些适合选项的更多信息,请参见lsqcurvefit函数。

优化的起点和默认约束

下表显示了库模型和自定义模型的默认系数起点和约束。如果对起点进行了优化,则根据当前数据集以启发式方式计算起点。随机起始点定义在区间[0,1]上,线性模型不需要起始点。

如果模型没有约束,则系数既没有上界也没有下界。您可以通过使用Fit Options对话框提供自己的值来覆盖默认的起始点和约束。

默认的起点和约束

模型

起点

约束条件

自定义线性

N/A

没有

自定义非线性

随机的

没有

指数

优化

没有

傅里叶

优化

没有

高斯

优化

c> 0

多项式

N/A

没有

权力

优化

没有

理性的

随机的

没有

的正弦

优化

b> 0

威布尔

随机的

一个b> 0

请注意,正弦和傅立叶级数模型的和对起始点特别敏感,并且优化的值可能仅对相关方程中的少数项是准确的。

在命令行指定适合选项

创建默认的适合选项结构,并在适合之前将该选项设置为居中和缩放数据:

options=fitoptions;options.Normal='on';options=Normalize:'on'排除:[1x0双精度]权重:[1x0双精度]方法:'None'

修改默认的适合选项结构是有用的,当您想要设置正常化排除,或权重字段,然后使用相同的选项和不同的拟合方法来拟合数据。例如:

负荷普查f1=配合(cdate,pop,'poly3',选项);f2=配合(cdate,pop,'exp1',选项);f3=配合(cdate,pop,'cubicsp',选项);

的第三个输出参数中返回与数据相关的适合选项适合函数。例如,平滑样条的平滑参数是与数据相关的:

(f, gof) =适合(cdate、流行、“平滑”);smoothparam =。P平滑参数= 0.0089

使用fit选项修改默认平滑参数为新的fit:

选项=拟合选项('Method','Smooth','SmoothingParam',0.0098);[f,gof,out]=拟合(cdate,pop,'Smooth',选项);

有关使用fit选项的详细信息,请参阅fitoptions参考页面。