下一个主题拟合一些人口普查数据使用多项式方程到六度,和一个单项指数方程。这些步骤演示了如何:
加载数据并使用不同的库模型探索不同的适合度。
通过以下方法寻找最佳匹配:
比较图形拟合结果
比较数值拟合结果,包括拟合系数和拟合优度统计量
将最佳拟合结果导出到MATLAB®工作区以在命令行分析模型。
保存会话并生成MATLAB代码的所有适合和图。
在使用曲线拟合应用程序拟合数据之前,必须将数据变量加载到MATLAB工作空间中。对于本例,数据存储在MATLAB文件中census.mat
.
加载数据:
负载的人口普查
工作区包含两个新变量:
cdate
列向量,以10年为单位包含1790年至1990年。
流行
列向量是美国人口数据对应的年份吗cdate
.
打开曲线拟合app:
cftool
选择变量名cdate
和流行
从X数据和Y数据列表。
曲线拟合应用程序创建并绘制默认拟合X输入(或预测数据)和Y输出(或响应数据)。默认的拟合是线性多项式拟合类型。观察fit设置显示多项式
的,学位1
.
通过选择将拟合变为二次多项式2
从学位列表。
曲线拟合应用程序绘制新的拟合图。曲线拟合应用程序计算一个新的适合当你改变适合设置,因为汽车适合默认选择。如果修改是耗时的,例如,对于大数据集,你可以关闭汽车适合通过清除复选框。
曲线拟合应用程序显示人口普查数据的二次多项式拟合结果结果窗格,您可以在其中查看库模型、拟合系数和拟合优度统计信息。
改变适合的名字来poly2
.
通过选择显示残差视图>残差图.
残差表明可能有更好的拟合。因此,继续探索各种适合人口普查数据集的方法。
添加新的适合尝试其他库方程。
右键单击适合符合表并选择复制”poly2
”(或使用适合菜单)。
提示
对于给定类型的fit(例如多项式),使用复制”fitname
”而不是一个新的适合,因为复制适合需要更少的步骤。复制的匹配包含相同的数据选择和匹配设置。
改变多项式学位来3.
重命名fitpoly3
.
当你拟合高次多项式时结果窗格显示此警告:
方程条件很差。删除重复的数据点或尝试居中和缩放。
的方法对数据进行规范化中心和规模复选框。
重复步骤a和b,将多项式拟合到六次,然后添加指数拟合。
对于每一个新的适合,看看结果面板信息,并在曲线拟合应用程序中绘制残差。
一个好的拟合的残差看起来应该是随机的,没有明显的模式。一个模式,例如连续残差具有相同符号的趋势,可以表明存在更好的模型。
关于缩放的警告出现,因为拟合程序使用cdate
值作为具有非常大值的矩阵的基值。传播cdate
值会导致缩放问题。要解决这个问题,可以将cdate
数据。对预测数据进行归一化处理,提高后续数值计算的准确性。一种正常化的方式cdate
就是把它集中在零均值上,然后缩放到单位标准差。等价代码为:
(cdate -意味着(cdate)。/性病(cdate)
请注意
由于预测器数据在归一化后会发生变化,因此拟合系数的值与原始数据相比也会发生变化。然而,数据的功能形式和结果的拟合优度统计数据并没有改变。此外,数据显示在曲线拟合应用程序绘图使用原始比例。
为了确定最佳拟合,您应该检查图形和数值拟合结果。
通过检查拟合图和残差确定最佳拟合。要依次查看每个适合的图,请双击适合表中的适合。图拟合结果表明:
多项式方程的拟合和残差都是相似的,因此很难选择最好的。
单项指数方程的拟合和残差表明它是一个较差的整体拟合。因此,这是一个糟糕的选择,你可以从最佳拟合的候选中去除指数拟合。
检查到2050年的行为。拟合人口普查数据的目的是外推最佳拟合来预测未来的人口价值。
在拟合表中双击六次多项式拟合以查看此拟合的图。
通过选择来改变坐标轴的限制工具>轴的限制.
改变X (cdate)最大来2050
,并增加主要Y(流行)最大来400
,按输入.
检查匹配图。超出数据范围的六次多项式拟合的行为使它成为一个糟糕的外推选择,你可以拒绝这种拟合。
当您不能再通过图形化检查来消除拟合时,您应该检查数值拟合结果。曲线拟合应用程序显示两种类型的数值拟合结果:
拟合优度统计
拟合系数的置信界限
拟合优越统计数据可以帮助您确定曲线适合数据的程度如何。系数上的置信度界限决定了它们的准确性。
检验数值拟合结果:
对于每个拟合度,查看结果窗格。
比较所有适合同时在符合表.单击列标题以按统计结果排序。
检查误差平方和(SSE)和调整R-square统计数据以帮助确定最佳拟合。SSE统计量为拟合的最小二乘误差,其值越接近零表示拟合越好。的调整R当您向模型添加额外的系数时,-square统计量通常是拟合质量的最佳指标。
最大的上交所exp1
表明它是一个差拟合,这是您已经通过检查拟合和残差确定的。最低的SSE值与poly6
.然而,这种拟合超出了数据范围的行为使其成为一个糟糕的外推选择,因此您已经通过检查带有新轴限制的图来拒绝这种拟合。
下一个最好的SSE值与五次多项式拟合有关,poly5
,暗示这可能是最合适的。不过,上证综指并没有调整R其余多项式拟合的-平方值都非常接近。你应该选择哪一个?
通过检查Results窗格中其余匹配项的置信范围来解决最佳匹配问题。双击一个适合的符合表打开(如果已经打开,则聚焦)适合的图形并查看“结果”窗格。一个符合图显示单个匹配的匹配设置、结果窗格和绘图。
显示五次多项式和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 Name Size Bytes Class fittedmodel 1x1 822 cfit . >> whoos fittedmodel Name Size Bytes Class fittedmodel 1x1 822 cfit . >> whoos fittedmodel
检查fittedmodel
cfit
对象,以显示模型、拟合系数和拟合系数的置信范围:
系数(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)
检查善
结构显示良好的配合结果:
dfe: 18 adjrsquare: 0.9986 rmse: 2.9724
检查输出
结构以显示与拟合相关联的附加信息,如残差:
输出输出= nummobs: 21 numparam: 3 residuals: [21x1 double] Jacobian: [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) hold on Plot (fittedmodel, 2000:10:2050, y) hold off
有关使用命令行重新生成这种交互式普查数据分析的示例,请参见多项式曲线拟合.
工具箱提供了几个保存工作的选项。您可以将一个或多个适合和相关的适合结果作为变量保存到MATLAB工作空间。然后,您可以将这些保存的信息用于文档编制目的,或者扩展数据探索和分析。除了保存您的工作到MATLAB工作区变量,您可以:
通过选择保存当前曲线拟合会话文件>保存会话.会话文件包含会话中的所有fit和变量,并记住您的布局。看到保存和重新加载会话.
生成MATLAB代码,重新创建所有适合和绘图在您的会议通过选择文件>生成代码.曲线拟合应用程序从您的会话生成代码,并在MATLAB编辑器中显示文件。
通过使用原始数据作为输入参数在命令行调用文件,可以重新创建适合和绘图。您还可以使用新数据调用文件,并自动化拟合多个数据集的过程。有关更多信息,请参见从曲线拟合应用程序生成代码.