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
相关推荐
梦梦代码精39 分钟前
从工程视角拆解 BuildingAI:一个企业级开源智能体平台的架构设计与实现
人工智能·gitee·开源·github
supericeice40 分钟前
复杂项目管理如何用好大模型:RAG、知识图谱与AI编排的落地框架
人工智能·知识图谱
AI机器学习算法6 小时前
深度学习模型演进:6个里程碑式CNN架构
人工智能·深度学习·cnn·大模型·ai学习路线
Ztopcloud极拓云视角6 小时前
从 OpenRouter 数据看中美 AI 调用量反转:统计口径、模型路由与多云应对方案
人工智能·阿里云·大模型·token·中美ai
AI医影跨模态组学6 小时前
如何将深度学习MTSR与膀胱癌ITGB8/TGF-β/WNT机制建立关联,并进一步解释其与患者预后及肿瘤侵袭、免疫抑制的生物学联系
人工智能·深度学习·论文·医学影像
搬砖的前端7 小时前
AI编辑器开源主模型搭配本地模型辅助对标GPT5.2/GPT5.4/Claude4.6(前端开发专属)
人工智能·开源·claude·mcp·trae·qwen3.6·ops4.6
Python私教7 小时前
Hermes Agent 安全加固与生态扩展:2026-04-23 更新解析
人工智能
饼干哥哥7 小时前
Kimi K2.6 干成了Claude Design国产版,一句话生成电影级的动态品牌网站
人工智能
肖有米XTKF86467 小时前
带货者精品优选模式系统的平台解析
人工智能·信息可视化·团队开发·csdn开发云
天天进步20157 小时前
打破沙盒限制:OpenWork 如何通过权限模型实现安全的系统级调用?
人工智能·安全