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
相关推荐
⊙月1 小时前
CMU 10423 Generative AI:lec14(Vision Language Model:CLIP、VQ-VAE)
人工智能·aigc
AI原吾1 小时前
探索未来:hbmqtt,Python中的AI驱动MQTT
开发语言·人工智能·python·ai·hbmqtt
肖遥Janic1 小时前
Stable Diffusion绘画 | 来训练属于自己的模型:炼丹参数调整--步数设置与计算
人工智能·ai·ai作画·stable diffusion
5pace1 小时前
动手学深度学习(李沐)PyTorch 第 5 章 深度学习计算
人工智能·pytorch·深度学习
Bill661 小时前
OpenCV Canny()函数
人工智能·opencv·计算机视觉
墨染辉1 小时前
文档切分粒度不好把控
人工智能
汪子熙2 小时前
什么是大语言模型的上下文窗口
人工智能·语言模型·自然语言处理
汪子熙2 小时前
什么是大语言模型的输入和输出限制
人工智能·语言模型·自然语言处理
音沐mu2 小时前
【YOLO目标检测行人与车数据集】共5607张、已标注txt格式、有训练好的yolov5的模型
人工智能·yolo·目标检测
说私域3 小时前
开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序的数据运营策略与价值创造
人工智能·小程序