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
相关推荐
笑衬人心。17 分钟前
初学Spring AI 笔记
人工智能·笔记·spring
luofeiju27 分钟前
RGB下的色彩变换:用线性代数解构色彩世界
图像处理·人工智能·opencv·线性代数
测试者家园29 分钟前
基于DeepSeek和crewAI构建测试用例脚本生成器
人工智能·python·测试用例·智能体·智能化测试·crewai
张较瘦_33 分钟前
[论文阅读] 人工智能 + 软件工程 | Call Me Maybe:用图神经网络增强JavaScript调用图构建
论文阅读·人工智能·软件工程
大模型真好玩33 分钟前
准确率飙升!Graph RAG如何利用知识图谱提升RAG答案质量(四)——微软GraphRAG代码实战
人工智能·python·mcp
Baihai_IDP1 小时前
vec2text 技术已开源!一定条件下,文本嵌入向量可“近乎完美地”还原
人工智能·面试·llm
江太翁1 小时前
Pytorch torch
人工智能·pytorch·python
拓端研究室1 小时前
专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载
大数据·人工智能
网安INF1 小时前
深度学习中的逻辑回归:从原理到Python实现
人工智能·python·深度学习·算法·逻辑回归
Despacito0o1 小时前
ESP32-s3摄像头驱动开发实战:从零搭建实时图像显示系统
人工智能·驱动开发·嵌入式硬件·音视频·嵌入式实时数据库