MATLAB计算与建模常见函数:2.回归模型

回归模型

回归分析(regressionanalysis)

  • 是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法;
  • 在大数据分析中,回归分析是一种预测性的建模技术 ,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术++通常用于预测分析,时间序列模型以及发现变量之间的因果关系。++
  • 按照自变量的多少,可分为一元回归分析和多元回归分析
  • 按照自变量和因变量的关系类型,可分为线性回归分析和非线性回归分析

回归分析主要解决的问题:

  • 通过分析大量的样本数据,确定变量之间的数学关系式,即回归函数f(x);
  • 对所确定的数学关系式的可信程度 进行各种统计检验 ,并区分出对某一特定变量影响较为显著的变量和影响不显著的变量;
  • 利用所确定的数学关系式,根据一个或几个变量的值来预测或控制 另一个特定变量的取值,并给出这种预测或控制的精确度

回归分析的主要步骤

  • 根据自变量与因变量的现有数据以及关系,初步设定回归方程
  • 求出合理的回归系数
  • 进行相关性检验 ,确定相关系数
  • 在符合相关性要求后,即可根据已得的回归方程与具体条件相结合,来确定事物的未来状况 ,并计算预测值的置信区间

线性回归

  • 在统计学中,线性回归++是利用线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析++;
  • 回归函数是一个或多个回归系数的模型参数的线性组合
    y=W.*X+b
  • 线性回归模型通常使用最小二乘逼近来拟合

MATLAB线性回归函数

b=regress(y,X)
  • 返回向量b ,其中包含向量y 中响应对矩阵X 中的预测变量多元线性回归的系数估计值
  • 如果要计算具有常数项(截距)模型 的系数估计值,需要在矩阵X中包含一个由1构成的列
[b,bint]=regress(y,X)
  • 进一步返回系数估计值的95%置信区间矩阵bint
[b,bint,r,rint,stats]=regress(y,X)
  • 返回由残差组成的向量r,矩阵rint(包含可用于诊断离群值的区间),返回向量stats(包含R2统计量、F统计量及其p值,以及误差方差的估计值);
  • 矩阵X必须包含一个由1组成的列,以便软件正确计算模型统计量;
[___]=regress(y,X,alpha)
  • 使用l00*(l-alpha)%置信水平来计算bint和rint.
  • 可以指定上述任一语法中的输出参数组合。

概念介绍

残差:

实际观察值与估计值(拟合值)之间的差。

离群值:

又称为逸出值,指的是数据中一个或几个数值与其他数值相比差异较大,或者具有明显的不同特征;

统计量:

统计理论中用来对数据进行分析、检验的变量R2表示:决定系数,反应因变量的全部变异能通过回归关系被自变量解释的比例。

例题:

例:近10年来,某市社会商品零售总额职工工资总额 (单位:亿元)的数据如下表所示,请建立社会商品零售总额与职工工资总额数据的回归模型

职工工资总额 23.8 27.6 31.6 32.4 33.7 34.9 43.2 52.8 63.8 73.4
商品零售总额 41.4 51.8 61.7 67.9 68.7 77.5 95.9 137.4 155.0 175.0
matlab 复制代码
x=[23.8 27.6 31.6 32.4 33.7 34.9 43.2 52.8 63.8 73.4];
y=[41.4 51.8 61.7 67.9 68.7 77.5 95.9 137.4 155.0 175.0];

figure;
plot(x,y,'o');
xlabel('职工工资总额');
ylabel('社会商品零售总额');

Y=y';
X=[ones(size(x,2),1),x'];
[b,bint,r,rint,stats]=regress(Y,X)

fprintf('回归方程:y=%.2f+%.2fx\n',b(1),b(2));
fprintf('R2=%.2f\n',stats(1));

hold on;
plot(x,b(1)+b(2).*x,'r-');
plot(x,b(1)+b(2).*x+bint(1,2),'-b');
plot(x,b(1)+b(2).*x-bint(1,2),'-b');
legend('拟合曲线','置信区间','残差','Location','SouthEast');

例题:已知8年来洞庭湖湖水中污染物实测值Y 与影响因素湖区工业产值x1总人口数x2捕鱼量x3降水量x4资料表如下所示,建立污染物Y的水质分析模型。

x1 1.376 1.375 1.387 1.401 1.412 1.428 1.445 1.477
x2 0.450 0.475 0.485 0.5 0.535 0.545 0.55 0.575
x3 2.17 2.554 2.676 2.713 2.823 3.088 3.122 3.262
x4 0.8922 1.161 0.5346 0.9589 1.0239 1.0499 1.1065 1.1387
Y 5.19 5.3 5.6 5.82 6 6.06 6.45 6.95
matlab 复制代码
x1=[1.376 1.375 1.387 1.401 1.412 1.428 1.445 1.477];
x2=[0.450 0.475 0.485 0.5 0.535 0.545 0.55 0.575];
x3=[2.17 2.554 2.676 2.713 2.823 3.088 3.122 3.262];
x4=[0.8922 1.161 0.5346 0.9589 1.0239 1.0499 1.1065 1.1387];
y=[5.19 5.3 5.6 5.82 6 6.06 6.45 6.95];

Y=y';
X=[ones(size(x1')),x1',x2',x3',x4'];
[b,bint,r,rint,stats]=regress(Y,X)

fprintf('回归方程:Y=%.2f+%.2fx1+%.2fx2+%.2fx3+%.2fx4\n',b(1),b(2),b(3),b(4),b(5));
fprintf('R2=%.2f\n',stats(1));

hold on;
plot(x1,b(1)+b(2).*x1+b(3).*x2+b(4).*x3+b(5).*x4,'r-');
plot(x1,b(1)+b(2).*x1+b(3).*x2+b(4).*x3+b(5).*x4+bint(1,2),'-b');
plot(x1,b(1)+b(2).*x1+b(3).*x2+b(4).*x3+b(5).*x4-bint(1,2),'-b');
legend('拟合曲线','置信区间','残差','Location','SouthEast');

其他函数

  • 逐步回归:stepwise
  • logistic回归:fitlm
  • 非线性回归:nlinfit、nlparci、nlpredci、nlintool
  • 偏最小二乘回归分析:plsregress
  • 线性拟合工具箱:LinearModel
相关推荐
两棵雪松2 小时前
为什么RAG技术可以缓解大模型知识固话和幻觉问题
人工智能·rag
未来智慧谷2 小时前
华为发布AI推理新技术,降低对HBM内存依赖
人工智能·华为
AKAMAI2 小时前
通过Akamai分布式计算区域实现直播传输
人工智能·分布式·云计算
坐在地上想成仙2 小时前
计算机视觉(4)-相机基础知识恶补
人工智能·数码相机·计算机视觉
sssammmm3 小时前
AI入门学习--如何写好prompt?
人工智能·学习·prompt
阿群今天学习了吗3 小时前
“鱼书”深度学习进阶笔记(3)第四章
人工智能·笔记·python·深度学习·算法
神齐的小马3 小时前
机器学习 [白板推导](十)[马尔可夫链蒙特卡洛法]
人工智能·机器学习·概率论
白-胖-子4 小时前
深度剖析主流AI大模型的编程语言与架构选择:行业实践与技术细节解读
人工智能·架构
AI模块工坊4 小时前
IEEE 2025 | 重磅开源!SLAM框架用“法向量+LRU缓存”,将三维重建效率飙升72%!
人工智能·深度学习·神经网络·机器学习·计算机视觉
nbsaas-boot4 小时前
用生成器守住架构,用 AI 放大效率:一套可落地的 AI 编程方法论
人工智能·架构