一个数据模型显式描述之间的关系预测而且响应变量。线性回归拟合模型系数为线性的数据模型。线性回归最常见的类型是a最小二乘匹配,它可以拟合直线和多项式,以及其他线性模型。
在对数量对之间的关系建模之前,执行相关分析以确定这些数量之间是否存在线性关系是一个好主意。请注意变量可能具有非线性关系,这是相关分析无法发现的。有关更多信息,请参见线性相关.
MATLAB®基本拟合UI可帮助您拟合数据,因此您可以计算模型系数并在数据之上绘制模型。有关示例,请参见示例:使用Basic Fitting UI.你也可以用MATLABpolyfit
而且polyval
函数将数据拟合到系数为线性的模型中。有关示例,请参见编程拟合.
如果需要用非线性模型拟合数据,可以转换变量以使关系线性化。或者,尝试直接使用统计和机器学习工具箱™拟合一个非线性函数nlinfit
函数,优化工具箱™lsqcurvefit
函数,或通过应用曲线拟合工具箱™中的函数。
本节介绍如何:
函数执行简单的线性回归\
操作符。
使用相关分析来确定两个量是否相关,以证明拟合数据的合理性。
为数据拟合线性模型。
通过绘制残差和寻找模式来评估拟合的优度。
计算拟合优度R的度量2调整后R2
方法执行简单的线性回归事故
数据集。该示例还向您展示了如何计算决定系数来评估回归。的
事故
数据集包含美国各州致命交通事故的数据。
线性回归是建立依赖变量或响应变量之间关系的模型以及一个或多个独立变量或预测变量
.简单线性回归只考虑一个自变量
在哪里是y截距,
斜率(或回归系数),和
是误差项。
从一套开始观测值
而且
给出的
,
、……
.利用简单的线性回归关系,这些值形成一个线性方程组。将这些方程用矩阵形式表示为
让
现在的关系是.
在MATLAB中,你可以找到使用
mldivide
运营商是B = x \ y
.
从数据集中事故
,加载事故数据y
州人口数据x
.求线性回归关系在一个州的事故和一个州的人口使用
\
操作符。的\
操作符执行最小二乘回归。
负载事故X = hwydata(:,14);各州人口百分比Y = hwydata(:,4);各州事故百分比格式长B1 = x\y
B1 = 1.372716735564871e-04
b1
是斜率或回归系数。线性关系是.
计算每个州的事故数yCalc
从x
使用关系。通过绘制实际值来可视化回归y
和计算值yCalc
.
yCalc1 = b1*x;散射(x, y)在情节(x, yCalc1)包含(“州人口”) ylabel (“每个州的致命交通事故”)标题(“事故与人口的线性回归关系”网格)在
通过加入y轴截距来改善拟合在你的模型中
.计算
通过填充
x
一列,然后使用\
操作符。
X = [ones(length(X),1) X];b = X\y
b =2×1102× 1.427120171726537 0.000001256394274
这个结果表示关系.
通过在同一图形上绘制图形来可视化这种关系。
yCalc2 = X*b;情节(x, yCalc2,“——”)传说(“数据”,“坡”,“斜率和截距”,“位置”,“最佳”);
从图中可以看出,这两次吻合很相似。找到更好拟合的一种方法是计算决定系数,.
是否有一种方法可以衡量模型预测数据的能力,或者介于两者之间
而且
.的值越高
,该模型预测数据的能力就越强。
在哪里的计算值
而且
的均值
,
定义为
的值进行比较,找出两个拟合中较好的拟合.随着
数值表明,包含y截距的第二次拟合更好。
Rsq1 = 1 - sum ((y - yCalc1) ^ 2) /笔((y -意味着(y)) ^ 2)。
Rsq1 = 0.822235650485566
Rsq2 = 1 - sum ((y - yCalc2) ^ 2) /笔((y -意味着(y)) ^ 2)。
Rsq2 = 0.838210531103428
残差是观察到的响应(因变量)的值和模型的值预测.当你拟合一个适合你的数据的模型时,残差近似于独立的随机误差。也就是说,残差的分布不应该呈现出一种可辨别的模式。
使用线性模型产生拟合需要最小化残差平方和。这种最小化产生了所谓的最小二乘拟合。你可以通过观察残差图来洞察拟合的“好坏”。如果残差图具有模式(即残差数据点似乎不具有随机散点),则随机性表明模型不能正确地拟合数据。
在您的数据上下文中评估您做出的每一个拟合。例如,如果拟合数据的目标是提取具有物理意义的系数,那么您的模型反映数据的物理特性就很重要。在评估拟合优度时,了解数据代表什么、如何测量以及如何建模非常重要。
拟合优度的一个衡量标准是决定系数,或R2(发音r平方)。这一统计数据表明从拟合模型中获得的值与模型预期的因变量的匹配程度。统计学家通常定义R2利用拟合模型的剩余方差:
R2= 1 - ss渣油/党卫军总计
党卫军渣油是回归残差的平方和。党卫军总计是与因变量(总平方和).都是正标量。
学习如何计算R2使用“基本拟合”工具时,请参见推导R2,决定系数.要了解更多关于计算R的知识2统计学及其多元泛化,继续阅读这里。
你可以推导出R2从系数的多项式回归中确定方差有多大y
线性模型解释如下例所示:
创建两个变量,x
而且y
的前两列数
数据文件中的变量count.dat
:
装载count.dat x = count(:,1);Y = count(:,2);
使用polyfit
计算一个线性回归来预测y
从x
:
P = polyfit(x,y,1) P = 1.5229 -2.1911
(1页)
是斜率和(2页)
是线性预测器的截距。方法还可以获得回归系数基本配件界面.
调用polyval
使用p
预测y
,调用结果yfit
:
Yfit = polyval(p,x);
使用polyval
避免你自己输入拟合方程,在这种情况下,它看起来像:
Yfit = p(1) * x + p(2);
计算残差值作为有符号数的向量:
Yresid = y - yfit;
对残差进行平方并将其相加,得到残差平方和:
SSresid = sum(yresid.^2);
计算的总平方和y
乘以的方差y
除以观测次数减去1
:
SStotal =(长度(y)-1) * var(y);
计算R2用本课题导言中给出的公式:
rsq = 1 - SSresid/SStotal rsq = 0.8707
1.5229 * x -2.1911
预测变量87%的方差y
.通常可以通过拟合更高次的多项式来减少模型中的残差。当你加入更多的项,你就增加了决定系数R2.你得到了一个更接近数据的拟合,但代价是一个更复杂的模型,其中R2不能解释。然而,对这一统计数据进行细化,调整R2,确实包含了对模型中术语数量的惩罚。调整R2因此,比较不同的模型如何适合相同的数据更合适。调整后的R2定义为:
R2调整= 1 - (ss渣油/党卫军总计) * ((n1) / (n-d1))
下面的例子重复上一个例子的步骤,示例:从多项式拟合计算R2,但执行三次(3次)拟合,而不是线性(1次)拟合。通过三次拟合,可以计算简单R和调整R2用于评估额外项是否提高预测能力的值:
创建两个变量,x
而且y
的前两列数
数据文件中的变量count.dat
:
装载count.dat x = count(:,1);Y = count(:,2);
调用polyfit
生成一个立方拟合来进行预测y
从x
:
P = polyfit(x,y,3) P = -0.0003 0.0390 0.2233 6.2779
(4页)
是三次预测器的截距。方法还可以获得回归系数基本配件界面.
调用polyval
用这些系数p
预测y
,命名结果yfit
:
Yfit = polyval(p,x);
polyval
计算你可以手动输入的显式方程:
yfit = p (1) * x。^ 3 + p (2) * x。^ 2 + x + p p (3) * (4);
计算残差值作为有符号数的向量:
Yresid = y - yfit;
对残差进行平方并将其相加,得到残差平方和:
SSresid = sum(yresid.^2);
计算的总平方和y
乘以的方差y
除以观测次数减去1
:
SStotal =(长度(y)-1) * var(y);
计算简单R2对于三次拟合,使用本课题介绍中给出的公式:
rsq = 1 - SSresid/SStotal rsq = 0.9083
最后,计算调整后的R2解释自由度:
rsq_adj = 1 - SSresid/SStotal * (length(y)-1)/(length(y)-length(p))) rsq_adj = 0.8945
在许多多项式回归模型中,向方程中添加项会使R和R都增加2调整后R2.在前面的示例中,与线性拟合相比,使用三次拟合增加了统计数据。(你可以计算调整后的R2对于你自己的线性拟合来证明它有一个较低的值。)然而,线性拟合并不总是比高阶拟合差:更复杂的拟合可以有更低的调整R2而不是简单的拟合,说明增加的复杂性是不合理的。同时,当R2对于基本拟合工具生成的多项式回归模型,总是在0和1之间变化,调整后的R2对于一些模型可以是负的,表明一个模型有太多的项。
相关性并不意味着因果关系。始终谨慎地解释相关系数和确定系数。系数仅量化拟合模型去除因变量中的方差。这样的度量并不能描述您的模型(或您选择的自变量)对于解释模型预测的变量的行为有多合适。
曲线拟合工具箱软件通过支持以下数据拟合功能扩展了MATLAB的核心功能:
线性和非线性参数拟合,包括标准线性最小二乘,非线性最小二乘,加权最小二乘,约束最小二乘,以及鲁棒拟合程序
非参数拟合
确定拟合优度的统计数据
外推,微分和积分
对话框,方便数据切片和平滑
以各种格式保存拟合结果,包括MATLAB代码文件、mat文件和工作区变量
有关更多信息,请参见曲线拟合工具箱文档。