下一个主题拟合一些人口普查数据使用多项式方程到六次,和一个单项指数方程。这些步骤演示如何:
使用不同的库模型加载数据并探索各种适合度。
搜索最合适的方法:
比较图形拟合结果
比较数值拟合结果,包括拟合系数和拟合优度统计量
导出您的最佳拟合结果到MATLAB®工作区在命令行上分析模型。
保存会话并为所有拟合和绘图生成MATLAB代码。
在使用曲线拟合应用程序拟合数据之前,必须将数据变量加载到MATLAB工作空间中。对于本例,数据存储在MATLAB文件中census.mat
.
加载数据:
负载的人口普查
工作区包含两个新变量:
cdate
以10年为增量,包含年份1790至1990的列向量。
流行
是一个列向量,其中美国人口数字对应于cdate
.
打开曲线拟合应用程序:
cftool
选择变量名cdate
而且流行
从X数据而且Y数据列表。
曲线拟合应用程序创建和绘制一个默认适合X输入(或预测数据)和Y输出(或响应数据)。默认的拟合是线性多项式拟合类型。观察合适的设置显示多项式
的,学位1
.
通过选择将拟合更改为二次多项式2
从学位列表。
曲线拟合应用程序绘制新的拟合。曲线拟合应用程序计算一个新的适合当你改变适合设置,因为汽车适合默认选中。如果改装是耗时的,例如,对于大型数据集,您可以关闭汽车适合通过清除复选框。
曲线拟合应用程序显示了人口普查数据与二次多项式拟合的结果结果窗格,您可以在其中查看库模型、拟合系数和拟合优度统计信息。
改变适合的名字来poly2
.
通过选择显示残差视图>残差图.
残差表明可能存在更好的拟合。因此,继续探索各种适合人口普查数据集。
添加新的拟合来尝试其他库方程。
右键单击拟合表并选择复制”poly2
”(或使用适合菜单)。
提示
对于给定类型的拟合(例如多项式),使用复制”fitname
”而不是一个新的匹配,因为复制一个匹配所需的步骤更少。复制的拟合包含相同的数据选择和拟合设置。
改变多项式学位来3.
并重命名fitpoly3
.
当你拟合高次多项式时,结果窗格显示以下警告:
方程的条件很差。删除重复的数据点或尝试居中和缩放。
控件使数据规范化中心与规模复选框。
重复步骤a和b,将多项式拟合添加到六次,然后添加指数拟合。
对于每一个新的合身,看看结果窗格信息,以及残差图在曲线拟合应用程序。
良好拟合的残差看起来应该是随机的,没有明显的模式。一种模式,例如连续残差具有相同符号的趋势,可以表明存在更好的模型。
出现缩放警告是因为拟合过程使用cdate
值作为具有非常大值的矩阵的基。传播cdate
值会导致伸缩性问题。要解决此问题,可以将cdate
数据。归一化对预测器数据进行缩放,以提高后续数值计算的准确性。一种正常化的方式cdate
就是将均值设为零,并将其缩放为单位标准差。等效代码为:
(cdate - mean(cdate))./std(cdate)
请注意
由于归一化后预测数据会发生变化,与原始数据相比,拟合系数的值也会发生变化。然而,数据的函数形式和由此产生的拟合优度统计数据没有改变。此外,数据显示在曲线拟合应用程序绘图使用原始尺度。
要确定最佳拟合,您应该同时检查图形和数值拟合结果。
通过检查拟合图和残差图来确定最佳拟合。若要依次查看每个拟合的图,请双击拟合表中的拟合。图形拟合结果表明:
多项式方程的拟合和残差都是相似的,因此很难选择最佳的一个。
单项指数方程的拟合和残差表明整体拟合较差。因此,这是一个糟糕的选择,您可以从最佳拟合的候选中删除指数拟合。
检查到2050年的行为。拟合人口普查数据的目标是外推最佳拟合来预测未来的人口值。
双击拟合表中的六次多项式拟合以查看此拟合的图。
通过选择更改图的轴限制工具>轴的限制.
改变X (cdate)最大来2050
,并增加主Y (pop)最大来400
,按输入.
检查拟合图。六次多项式拟合超出数据范围的行为使其成为一个较差的外推选择,您可以拒绝此拟合。
当您不能再通过图形检查来消除拟合时,您应该检查数值拟合结果。曲线拟合应用程序显示两种类型的数值拟合结果:
拟合优度统计
拟合系数的置信边界
拟合优度统计数据可帮助您确定曲线拟合数据的程度。系数的置信范围决定了它们的准确性。
检查数值拟合结果:
中查看每种拟合优度统计信息结果窗格。
比较所有匹配同时在拟合表.单击列标题可按统计结果排序。
检查由于误差平方和(SSE)和调整R-平方统计数据,以帮助确定最佳拟合。SSE统计量是拟合的最小二乘误差,接近于零的值表示较好的拟合。的调整R平方统计量通常是拟合质量的最佳指标,当您添加额外的系数到您的模型。
最大的上交所exp1
表明它是一个糟糕的拟合,这是您已经通过检查拟合和残差确定的。最小SSE值与poly6
.然而,这种拟合超出数据范围的行为使其成为一个较差的外推选择,因此通过检查具有新轴限制的图,您已经拒绝了这种拟合。
次优SSE值与五次多项式拟合相关,poly5
这表明它可能是最合适的。不过,上证综指有所调整R其余多项式拟合的-平方值都非常接近。你应该选择哪一个呢?
通过检查“结果”窗格中其余拟合的置信范围来解决最佳拟合问题。文件中的匹配项拟合表打开(如果已经打开,则聚焦)拟合图形并查看“结果”窗格。一个符合图显示单个拟合的拟合设置、结果窗格和图形。
显示五次多项式和poly2
将数字并排排列。并排检查结果可以帮助你评估适合度。
要同时显示两个拟合图形,请使用曲线拟合应用程序右上方的布局控件或选择窗口>左/右瓷砖或顶部/底部瓷砖.
若要更改显示的配合度,请单击以选择配合度图形,然后双击要在拟合表.
比较系数和边界(p1
,p2
,等等),在“结果”窗格中,poly5
而且poly2
.工具箱计算系数的95%置信界限。系数的置信范围决定了它们的准确性。检查“结果”窗格中的方程式(f (x) = p1 * x + p2 * x
),以查看每个系数的模型项。请注意,p2
指p2 * x
术语Poly2
和p2 * x ^ 4
术语Poly5
.不要直接比较归一化系数和非归一化系数。
提示
使用视图菜单来隐藏配合设置或拟合表如果您需要更多的空间来查看和比较图和结果,如下所示。你也可以隐藏结果窗格仅显示图。
上的界穿过0p1
,p2
,p3
五次多项式的系数。这意味着你不能确定这些系数不等于零。如果高阶模型项的系数可能为零,则它们对拟合没有帮助,这表明该模型对人口普查数据过于拟合。
但是,上的小置信限不超过零p1
,p2
,p3
对于二次拟合,poly2
表明拟合系数是相当准确的。
因此,在检查图形和数值拟合结果后,您应该选择poly2
最适合推断人口普查数据。
请注意
与常数项、线性项和二次项相关的拟合系数对于每个归一化多项式方程几乎相同。然而,随着多项式阶数的增加,与较高阶项相关的系数边界会越过零,这表明过拟合。
你可以使用保存到工作区将所选拟合结果及相关拟合结果导出到MATLAB工作空间。拟合被保存为MATLAB对象,相关的拟合结果被保存为结构。
右键单击poly2
适合拟合表并选择保存“poly2”到工作区(或使用适合菜单)。
点击好吧以默认名称保存。
的fittedmodel
保存为曲线拟合工具箱™cfit
对象。
>> whoos fittedmodel名称大小字节类fittedmodel 1x1 822 cfit
检查fittedmodel
cfit
对象显示模型、拟合系数和拟合系数的置信范围:
Poly2:拟合模型(x) = p1*x^2 + p2*x + p3系数(95%置信限):p1 = 0.006541 (0.006124, 0.006958) p2 = -23.51 (-25.09, -21.93) p3 = 2.113e+004 (1.964e+004, 2.262 2e+004)
检查善
结构来显示拟合优度结果:
good good = sse: 159.0293 rsquare: 0.9987 dfe: 18 adjrsquare: 0.9986 rmse: 2.9724
检查输出
结构来显示与拟合相关的其他信息,如残差:
输出输出= numobs: 21 numparam: 3残差:[21x1 double]雅可比矩阵:[21x3 double] exitflag: 1算法:'QR因式分解和求解'迭代:1
您可以用各种后处理函数对指定数据范围内的拟合进行计算(插值或外推)、微分或积分。
例如,计算fittedmodel
在推算2050年的值向量处输入:
Y =拟合模型(2000:10:2050)Y = 274.6221 301.8240 330.3341 360.1524 391.2790 423.7137
Plot (fittedmodel, cdate, pop)等待Plot (fittedmodel, 2000:10:2050, y)等待
有关使用命令行重现此交互式普查数据分析的示例,请参见多项式曲线拟合.
工具箱提供了用于保存工作的几个选项。您可以将一个或多个拟合以及相关的拟合结果作为变量保存到MATLAB工作区。然后,您可以将此保存的信息用于文档编制,或扩展数据探索和分析。除了将工作保存到MATLAB工作空间变量中,您还可以:
选择保存当前曲线拟合会话文件>保存会话.会话文件包含会话中的所有拟合和变量,并记住布局。看到保存和重新加载会话.
生成MATLAB代码,通过选择重新创建会话中的所有拟合和绘图文件>生成代码.曲线拟合应用程序从您的会话生成代码,并在MATLAB编辑器中显示文件。
您可以使用原始数据作为输入参数,在命令行上调用该文件,从而重新创建拟合和绘图。您还可以使用新数据调用该文件,并自动化拟合多个数据集的过程。有关更多信息,请参见从曲线拟合应用程序生成代码.