交互式装配
基本拟合界面
MATLAB®Basic Fitting UI允许您交互式地:
使用样条插值器、形状保持插值器或10次以下的多项式对数据进行建模
绘制一个或多个符合数据的图
画出匹配的残差
计算模型系数
计算残差的范数(一个可以用来分析模型与数据吻合程度的统计数据)
使用模型在数据之外进行插值或外推
将系数和计算值保存到MATLAB工作区中,以便在对话框之外使用
生成MATLAB代码以重新计算拟合,并使用新数据再现图
请注意
Basic Fitting UI只适用于2-D绘图。有关更高级的拟合和回归分析,请参阅曲线拟合工具箱™文档和统计和机器学习工具箱™文档。
基础安装准备
基本拟合UI在拟合前按升序对数据进行排序。如果您的数据集很大,并且值不是按升序排序的,那么Basic Fitting UI在拟合之前对数据进行预处理将花费更长的时间。
首先对数据进行排序,可以加快Basic Fitting UI的速度。创建排序向量x_sorted
而且y_sorted
从数据向量x
而且y
,使用MATLAB排序
功能:
[x_sorted, i] = sort(x);y_sorted = y(我);
打开基本配件UI
要使用Basic Fitting UI,您必须首先在图形窗口中绘制数据,使用任何MATLAB绘图命令(仅生成)x而且y数据。
要打开Basic Fitting UI,请选择工具>基本配件从图窗口顶部的菜单中。
示例:使用Basic Fitting UI
这个例子展示了如何使用Basic Fitting UI来拟合、可视化、分析、保存和生成多项式回归的代码。
加载和绘制人口普查数据
该文件census.mat
包含1790年至1990年每隔10年的美国人口数据。
要加载并绘制数据,在MATLAB提示符中输入以下命令:
负载人口普查情节(cdate、流行,“罗”)
的负载
命令将以下变量添加到MATLAB工作区:
cdate
-列向量,包含从1790年到1990年以10为增量的年份。它是预测变量。流行
-列向量表示美国每年的人口cdate
.它是响应变量。
数据向量按年升序排序。这幅图显示了人口作为年的函数。
现在,您可以用数据拟合一个方程来模拟人口随时间的增长。
用三次多项式拟合预测人口普查数据
通过选择打开“基本配件”对话框工具>基本配件在“图”窗口。
在类型的适合区域,选择“基本配件”对话框的立方复选框可将三次多项式拟合为数据。
MATLAB使用您的选择来拟合数据,并将三次回归线添加到图中如下所示。
在计算拟合时,MATLAB遇到了问题,并发出以下警告:
这个警告表明模型的计算系数对响应(测量总体)中的随机误差很敏感。它还建议了一些你可以做的事情来获得更好的身材。
继续使用三次配合。由于您无法向普查数据中添加新的观察结果,因此可以通过转换必须的值来提高拟合性z得分在重新计算适合度之前。选择中心和刻度x轴数据复选框,以使Basic fit工具执行转换。
要了解如何对数据进行定心和缩放,请参见了解基本的拟合工具如何计算拟合.
下误差估计(残差),选择规范的残差复选框。选择酒吧随着情节风格.
选择这些选项将创建残差的子图,作为柱状图。
在1790年之前,立方拟合不是一个很好的预测指标,因为它表明人口在减少。该模型似乎很好地近似了1790年以后的数据。但残差的规律表明模型不满足正态误差的假设,这是进行最小二乘拟合的基础。的数据1在图例中确定的线是观察到的x(cdate
),y(流行
)数据值。的立方回归线表示对中和缩放数据值后的拟合。注意,图中显示的是原始数据单位,尽管该工具使用转换后的z分数计算拟合。
中选择另一个多项式方程拟合普查数据以进行比较类型的适合区域。
查看并保存立方拟合参数
在“基本配件”对话框中,单击扩张的结果按钮显示估计系数和残差范数。
将拟合数据保存到MATLAB工作区中出口到工作区按钮在数值结果面板上。打开“保存适合到工作区”对话框。
选中所有复选框后,单击好吧将拟合参数保存为MATLAB结构适合
:
适合
Fit = struct with fields: type: '多项式度3' coeff: [0.9210 25.1834 73.8598 61.7444]
现在,您可以在基本拟合UI之外的MATLAB编程中使用拟合结果。
R2,决定系数
你可以通过计算多项式回归预测观测数据的好坏得到一个指示确定系数,或r平方(写成R2).R2Statistic的取值范围从0到1,用来衡量自变量在预测因变量值时的有用程度:
R2接近0的值表示拟合效果并不比模型好多少
y =常数
.R2接近1的值表示自变量解释了因变量的大部分可变性。
R2从残差,即观察到的依赖值与拟合预测值之间的有符号差异。
残差= y观察到的- y安装 | (1) |
R2本例中用于三次匹配的数字0.9988位于下面合适的结果在Basic Fitting对话框中。
比较R2三次拟合的数字为线性最小二乘拟合,选择线性下类型的适合得到R2号,0.921。这一结果表明,人口数据的线性最小二乘拟合解释了92.1%的方差。由于该数据的三次拟合解释了99.9%的方差,后者似乎是一个更好的预测器。然而,由于三次拟合预测使用三个变量(x,x2,x3.),一个基本的R2值并不能完全反映匹配的健壮程度。评估多元拟合优度的更合适的方法是调整R2.有关计算和使用调整后的R2,请参阅残差和拟合优度.
插值和外推人口值
假设您想使用三次模型来插值1965年的美国人口(原始数据中没有提供这个日期)。
在“基本装配”对话框中,单击插值/外推数据,输入X值1965并检查情节评估数据盒子。
请注意
使用无缩放和无居中X
值。您不需要首先居中和缩放,即使您选择了缩放X
值来获得系数用三次多项式拟合预测人口普查数据.基本装配工具在幕后进行必要的调整。
的X
的值和对应的值f (X)
由拟合计算并绘制如下:
生成一个代码文件来再现结果
在完成一个基本拟合会话之后,您可以生成重新计算拟合并使用新数据再现图的MATLAB代码。
在Figure窗口中,选择文件>生成代码.
这将创建一个函数并在MATLAB编辑器中显示它。该代码向您展示了如何以编程方式再现与Basic Fitting对话框交互所做的工作。
更改第一行的函数名
createfigure
更具体的,比如censusplot
.用文件名将代码文件保存到当前文件夹中censusplot.m
函数的开头是:函数普查图(X1, Y1, valuesToEvaluate1)
生成一些新的、随机扰动的人口普查数据:
rng (“默认”) randpop = pop + 10*randn(size(pop));
用新数据再现图并重新计算拟合:
censusplot (cdate randpop, 1965)
你需要三个输入参数:x, y值(
数据1
)在原图中绘制,加上anx-value用于标记。下图显示了生成的代码生成的图。新图形与生成代码的图形的外观相匹配y数据值,三次拟合方程,以及条形图中的残差值,如预期的那样。
了解基本的拟合工具如何计算拟合
的基本装配工具调用polyfit
函数计算多项式拟合。它调用polyval
函数计算适合度。polyfit
分析其输入,以确定数据是否符合要求的拟合程度。
当它发现条件恶劣的数据时,polyfit
尽可能地计算回归,但它也会返回一个警告,提示适合度可以改进。基本拟合示例部分用三次多项式拟合预测人口普查数据显示这个警告。
提高模型可靠性的一种方法是增加数据点。然而,向数据集添加观察结果并不总是可行的。另一种策略是对预测变量进行变换,使其中心和尺度规范化。(在本例中,预测器是人口普查日期的向量。)
的polyfit
函数通过计算归一化z得分:
在哪里x是预测数据,μ的均值x,σ的标准差是x.的z-scores给出的数据均值为0,标准差为1。在Basic Fitting UI中,您将预测器数据转换为z-通过选择中心和刻度x轴数据复选框。
定心和缩放后,计算模型系数y数据作为的函数z.这些系数与计算出来的系数不同(也更稳健)y作为x.模型的形式和残差的范数不变。基本配件UI自动缩放z-评分,使拟合图与原始图的比例相同x数据。
要理解如何将居中和缩放的数据作为中介来创建最终的图,可以在命令窗口中运行以下代码:
关闭负载人口普查x = cdate;y =流行;z = (x-mean (x) /性病(x);计算x数据的z分数情节(x, y,“罗”)将数据绘制为红色标记持有在准备坐标轴以接受顶部的新图形zfit = linspace (z(1)、z(结束),100);pz = polyfit (z, y, 3);%计算条件匹配yfit = polyval (pz、zfit);xfit = linspace (x(1),(结束),100);情节(xfit yfit,“b -”)绘制条件拟合与x数据
居中和缩放的三次多项式图为蓝线,如下所示:
在代码中,计算z
说明如何规范化数据。的polyfit
函数在调用时,如果你提供三个返回参数,则会执行转换本身:
(p, S,μ)= polyfit (x, y, n)
p
,现在都是基于标准化的x
.返回向量,μ
的均值和标准差x
.有关更多信息,请参见polyfit
参考页面。