数学建模之回归分析算法(含matlab源代码)

目录

一、一元线性回归

1、步骤

 2、matlab命令(多元线性回归)

3、举例

 二、一元非线性回归

 三、多项式回归

1、一元多项式回归

 应用

 2、多元二项式

应用

 四、非线性回归

 应用

五、 逐步回归

 应用


一、一元线性回归

1、步骤

 2、matlab命令(多元线性回归)

 

 r²和F越大越好 p越小越好

3、举例

 x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]';
X=[ones(16,1) x];
Y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]';
%回归分析检验
[b,bint,r,rint,stats]=regress(Y,X)
b,bint,stats
%作残差图:
rcoplot(r,rint)ats
%预测及作图:
z=b(1)+b(2)* %随机
plot(x,Y,'k+',x,z,'r')

 

 

 从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点.

 二、一元非线性回归

 

 三、多项式回归

1、一元多项式回归

 

 应用

 法一:使用二次多项式回归

t=1/30:1/30:14/30;
s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48];
[p,S]=polyfit(t,s,2)

 法二:多元线性回归:

t=1/30:1/30:14/30;
s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48];
T=[ones(14,1) t' (t.^2)'];
[b,bint,r,rint,stats]=regress(s',T);
b,stats

 

 预测和作图:

 Y=polyconf(p,t,S)
 plot(t,s,'k+',t,Y,'r')

 2、多元二项式

应用

 法一:使用多元二项式

x1=[1000 600 1200 500 300 400 1300 1100 1300 300];
x2=[5 7 6 6 8 7 5 4 3 9];
y=[100 75 80 70 50 65 90 100 110 60]';
x=[x1' x2'];
rstool(x,y,'purequadratic')

 

 将左边图形下方方框中的“800”改成1000,右边图形下方的方框中仍输入6.则画面左边的“Predicted Y”下方的数据由原来的“86.3791”变为88.4791,即预测出平均收入为1000.价格为6时的商品需求量为88.4791.

 

beta, rmse

beta =

  110.5313
    0.1464
  -26.5709
   -0.0001
    1.8475


rmse =

    4.5362

 法二:

 

X=[ones(10,1) x1' x2' (x1.^2)' (x2.^2)']; 
[b,bint,r,rint,stats]=regress(y,X);
b.stats

 四、非线性回归

 应用

 

x=2:16;
y=[6.42 8.20 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76];
beta0=[8 2]';%随机取得
[beta,r ,J]=nlinfit(x',y','volum',beta0);
beta

 预测和作图:

[YY,delta]=nlpredci('volum',x',beta,r ,J);
plot(x,y,'k+',x,YY,'r')

 

五、 逐步回归

 应用

 

 x1=[7 1 11 11 7 11 3 1 2 21 1 11 10]';
x2=[26 29 56 31 52 55 71 31 54 47 40 66 68]';
x3=[6 15 8 8 6 9 17 22 18 4 23 9 8]';
x4=[60 52 20 47 33 22 6 44 22 26 34 12 12]';
y=[78.5 74.3 104.3 87.6 95.9 109.2 102.7 72.5 93.1 115.9 83.8 113.3 109.4]';
x=[x1 x2 x3 x4];
stepwise(x,y)

% 对变量y和x1 x2做线性回归
X=[ones(13,1) x1 x2];
b=regress(y,X)

 

 做线性回归结果:

 

  • 9
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CSDN数学建模十大算法源代码Matlab主要涉及了数学建模领域的十个重要算法,并提供了相应的源代码,主要用Matlab语言编写。 第一个算法是线性规划。线性规划是一种通过构建线性模型,求解目标函数最优解的方法。其源代码主要包括定义模型、设定约束条件和目标函数、求解最优解等步骤。 第二个算法是非线性规划。非线性规划是在目标函数或约束条件中存在非线性关系的情况下,求解最优解的方法。其源代码包括构建非线性模型、设置约束条件、寻找局部最优解等步骤。 第三个算法是整数规划。整数规划是在目标函数或变量取值上存在整数要求的情况下,求解最优解的方法。源代码主要包括定义整数规划模型、设置约束条件、求解最优解等步骤。 第四个算法是动态规划。动态规划是一种通过拆分问题为多个子问题,并以递推的方式求解最优解的方法。源代码包括定义状态转移方程、设置初始条件、求解最优解等步骤。 第五个算法是遗传算法。遗传算法是一种基于进化原理的搜索算法,通过模拟生物遗传过程来优化问题的解。源代码包括设置种群、定义适应度函数、进行交叉和变异等步骤。 第六个算法是模拟退火算法。模拟退火算法是一种基于物理退火原理的全局优化算法,通过模拟金属冶炼过程来优化问题的解。源代码包括设定初始温度、定义能量函数、进行状态转移等步骤。 第七个算法是粒子群算法。粒子群算法是一种基于群体行为的优化算法,通过模拟鸟群觅食过程来优化问题的解。源代码包括设置粒子群、定义适应度函数、更新粒子位置等步骤。 第八个算法是免疫算法。免疫算法是一种基于免疫系统原理的优化算法,通过模拟免疫系统的学习和进化过程来优化问题的解。源代码包括设置免疫库、定义免疫适应度函数、进行免疫操作等步骤。 第九个算法是蚁群算法。蚁群算法是一种基于蚂蚁觅食行为的优化算法,通过模拟蚂蚁寻找食物的过程来优化问题的解。源代码包括构建蚂蚁群体、定义信息素更新规则、进行路径选择等步骤。 最后一个算法是人工神经网络。人工神经网络是一种模拟生物神经网络的计算模型,通过学习和训练过程来优化问题的解。源代码包括设置网络结构、定义激活函数、进行前向传播和误差反向传播等步骤。 以上是CSDN数学建模十大算法源代码Matlab的简要介绍,这些算法数学建模领域具有重要的应用价值,可以帮助研究人员解决各种实际问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值