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
相关推荐
喵~来学编程啦5 分钟前
【论文精读】LPT: Long-tailed prompt tuning for image classification
人工智能·深度学习·机器学习·计算机视觉·论文笔记
深圳市青牛科技实业有限公司18 分钟前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
水豚AI课代表39 分钟前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc
几两春秋梦_39 分钟前
符号回归概念
人工智能·数据挖掘·回归
用户691581141652 小时前
Ascend Extension for PyTorch的源码解析
人工智能
用户691581141652 小时前
Ascend C的编程模型
人工智能
成富2 小时前
文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
数据库·人工智能·sql·spring·oracle
CSDN云计算3 小时前
如何以开源加速AI企业落地,红帽带来新解法
人工智能·开源·openshift·红帽·instructlab
艾派森3 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
hairenjing11233 小时前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机