主要内容

线性回归

介绍

一个数据模型明确地描述了之间的关系预测指标回复变量。线性回归拟合的数据模型是线性的模型系数。最常见的线性回归类型是最小二乘匹配,它可以拟合直线和多项式,以及其他线性模型。

在对数量之间的关系建模之前,最好先进行相关分析,以确定这些数量之间是否存在线性关系。要知道变量可能具有非线性关系,这是相关分析无法检测到的。有关更多信息,请参见线性相关性

MATLAB®基本拟合UI可帮助您满足您的数据,因此您可以计算模型系数并在数据顶部绘制模型。例如,看到示例:使用基本配件UI.你也可以使用MATLABpolyfit多尔函数将数据拟合到系数为线性的模型。有关示例,请参阅编程拟合

如果需要使用非线性模型拟合数据,请将变量转换为使关系线性。或者,尝试使用统计和机器学习工具箱™直接符合非线性功能nlinfit功能,优化工具箱™lsqcurvefit功能,或通过在曲线配件工具箱™中应用功能。

本主题说明如何:

  • 使用操作员。

  • 使用相关性分析以确定两个数量是否与拟合数据的证明有关。

  • 将线性模型拟合到数据。

  • 通过绘制残差和寻找模式来评估拟合优度。

  • 计算拟合优度的度量R2并调整了R2

简单线性回归

此示例显示了如何使用的方式执行简单的线性回归事故发生该示例还向您展示了如何计算确定系数 R 2 来评估回归。的事故发生数据集包含美国各州致命交通事故的数据。

线性回归模型建立了一个相关变量或响应变量之间的关系 y 一个或多个独立的,或预测变量 x 1 x n .简单的线性回归仅考虑使用关系的一个独立变量

y β 0 + β 1 x + ε.

哪里 β 0 是y轴截距, β 1 是斜率(或回归系数),和 ε. 是错误项。

从一套开始 n 观测值 x y 给予 x 1 y 1 x 2 y 2 , ..., x n y n 。使用简单的线性回归关系,这些值形成一个线性方程组。将这些方程以矩阵形式表示为

y 1 y 2 y n 1 x 1 1 x 2 1 x n β 0 β 1

Y y 1 y 2 y n X 1 x 1 1 x 2 1 x n B β 0 β 1

关系现在是 Y X B

在MATLAB中,你可以找到 B 使用mldivide运营商是b = x \ y

来自DataSet.事故发生,负载事故数据y和州人口数据x.找到线性回归关系 y β 1 x 在一个州的事故和使用操作员。的运算符执行最小二乘回归。

负载事故发生x = hwydata(:,14);%的人口国家y=hwydata(:,4);每州的%事故格式长的b1=x\y
B1 = 1.372716735564871e-04

b1是斜率或回归系数。线性关系为 y β 1 x 0 0 0 0 1 3. 7 2 x

计算每个州的事故数yCalcx使用关系。通过绘制实际值来可视化回归y计算值yCalc

yCalc1=b1*x;散射(x,y)保持在…上图(x,yCalc1)xlabel(“州人口”)伊拉贝尔(“每个州的致命交通事故”) 标题(“事故与人口之间的线性回归关系”) 网格在…上

图中包含一个坐标轴。以“事故与人口之间的线性回归关系”为标题的坐标轴包含散点、直线两个对象。

通过包含y形截距来改善配合 β 0 在您的模型中作为 y β 0 + β 1 x .计算 β 0 通过填充x用一列并使用操作员。

X = [ones(length(X),1) X];b = X、y
B =2×1102×1.427120171726538 0.000001256394274

这个结果代表了这个关系 y β 0 + β 1 x 1 4 2 7 1 2 0 + 0 0 0 0 1 2 5 6 x

通过在同一个图形上画出它们的关系来形象化。

yCalc2 = X * b;情节(x, yCalc2,“——”)传奇('数据'“坡”'斜坡和拦截'“位置”'最好的事物');

图中包含一个坐标轴。具有意外和人口之间标题线性回归关系的轴包含3型散射,线的3个对象。这些对象代表数据,斜率,斜率和截距。

从图中,两个适合看起来相似。找到更好的方法是计算确定系数, R 2 R 2 是衡量模型预测数据的能力的一个指标,介于 0 1 .价值越高 R 2 ,模型在预测数据方面的效果越好。

在哪里 y ˆ 的计算值 y y 是卑鄙的 y R 2 定义为

R 2 1 - 1 n y - y ˆ 2 1 n y - y 2

通过比较 R 2 .作为 R 2 值表明,包括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渣滓/ ss.全部的

党卫军渣滓是回归的残差平方和。党卫军全部的为因变量(总平方和).都是正的标量。

学习如何计算R2使用基本配件工具时,请参见R2,测定系数.学习更多关于计算R的知识2统计学及其多元概括,继续阅读这里。

例如:计算R2来自多项式适合

你可以导出R2从多项式回归的系数中确定y线性模型解释如下示例所述:

  1. 创建两个变量,xy,来自前两列的变量count.dat

    加载计数.dat x=计数(:,1);y=计数(:,2);

  2. 使用polyfit计算一个线性回归来预测yx

    P = polyfit(x,y,1

    p(1)是斜坡和p(2)是线性预测器的截距。您还可以使用使用的回归系数基本拟合UI

  3. 呼叫多尔使用p预测y,调用结果yfit

    yfit = polyval (p (x);

    使用多尔节省了你自己输入适合度方程的时间,在本例中是这样的:

    yfit=p(1)*x+p(2);
  4. 以带符号数向量的形式计算剩余值:

    yresid=y-yfit;

  5. 对残差求平方并求和,以获得残差平方和:

    ssresid = sum(yresid。^ 2);

  6. 计算的总平方和y通过乘以y除以观测次数减去1

    SStotal=(长度(y)-1)*变量(y);

  7. 计算机2使用本主题导言中给出的公式:

    rsq = 1 - SSresid/SStotal rsq = 0.8707
    这表明线性方程1.5229 * x -2.1911预测变量中的87%的差异y

计算R调整2对于多项式回归

您通常可以通过拟合更高的多项式来减少模型中的残留物。添加更多条件时,您会增加确定系数R2.您将仔细融入数据,但以更复杂的模型为代价,为此2不能解释。然而,对这一统计数据的改进,调整R2,确实包括了对模型中术语数量的惩罚。调整R2因此,比较不同模型对相同数据的拟合程度更合适2定义如下:

R2调整= 1 - (ss渣滓/ ss.全部的)*((n1) / (n-d-1))

哪里n是数据中的观察数,以及d是多项式的阶数。(线性拟合的阶数为1,二次拟合的阶数为2,三次拟合的阶数为3,依此类推。)

下例重复上例的步骤,示例:从多项式适合计算R2,但执行三次(3次)拟合而不是线性(1次)拟合。从三次拟合中,可以计算简单和调整后的R2用于评估附加项是否提高预测能力的值:

  1. 创建两个变量,xy,来自前两列的变量count.dat

    加载计数.dat x=计数(:,1);y=计数(:,2);

  2. 呼叫polyfit生成立方体适合预测yx

    P = polyfit(x,y,3) P = -0.0003 0.0390 0.2233 6.2779

    p(4)是立方预测器的拦截。您还可以使用使用的回归系数基本拟合UI

  3. 呼叫多尔用这些系数p预测y,为结果命名yfit

    yfit = polyval (p (x);

    多尔计算可以手动输入的显式方程式:

    yfit = p (1) * x。^ 3 + p (2) * x。^ 2 + x + p p (3) * (4);

  4. 以带符号数向量的形式计算剩余值:

    yresid=y-yfit;

  5. 对残差求平方并求和,以获得残差平方和:

    ssresid = sum(yresid。^ 2);

  6. 计算的总平方和y通过乘以y除以观测次数减去1

    SStotal=(长度(y)-1)*变量(y);

  7. 计算简单R2对于使用此主题的引入中提供的公式的立方拟合:

    rsq=1-SSresid/SStotal rsq=0.9083

  8. 最后,计算调整后的r2考虑自由度:

    rsq_adj = 1 - SStotal * (length(y)-1)/(length(y)-length(p))
    调整后的R2,0.8945,小于简单的r2,.9083。它为多项式模型的预测能力提供了更可靠的估计。

在许多多项式回归模型中,向方程中添加项会增加两个R2并调整了R2. 在前面的示例中,与线性拟合相比,使用三次拟合增加了这两个统计信息。(您可以计算调整后的R2但是,线性拟合并不总是比高阶拟合差:更复杂的拟合可以有更低的调整R2比一个更简单的拟合,表明增加的复杂性是不合理的2对于基本拟合工具生成的多项式回归模型,始终在0和1之间变化,调整R2对于某些模型,可能是负数,这表示模型中的术语太多。

相关性并不意味着因果关系。总是要谨慎地解释相关系数和决定系数。系数只是量化了被拟合模型去除的因变量的方差。这样的测量方法并不能描述你的模型——或者你选择的独立变量——在解释模型所预测的变量的行为方面有多合适。

数据拟合曲线拟合工具箱功能

曲线拟合工具箱软件通过启用以下数据拟合功能扩展了MATLAB的核心功能:

  • 线性和非线性参数拟合,包括标准线性最小二乘,非线性最小二乘,加权最小二乘,约束最小二乘,稳健的拟合程序

  • 非参数拟合

  • 确定合适的善良的统计数据

  • 外推、微分和积分

  • 对话框,便于数据切片和平滑

  • 保存适合的结果在各种格式,包括MATLAB代码文件,mat文件,和工作空间变量

有关更多信息,请参见曲线拟合工具箱文档