-
2022-07-26 03:05:28
% 其解决问题的大致方法、步骤如下: % 1.根据研究目的收集数据和预分析,收集一组包含因变量和自变量的数据; % 2.根据散点图是否具有线性关系建立基本回归模型,选定因变量和自变量之间的模型,即一个数学式子,利用数据按照最小二乘准则计算模型中的系数; % 3.利用统计分析方法对不同的模型进行比较,找出与数据拟合得最好的模型; % 4.检验得到的模型是否适合于这组数据; % 5.利用模型对因变量作出预测或解释。 % 每次修改输入输出数据,m、n和回归的循环 %………………………………………… clc %第一步:原始数据处理与线性分析 % Y: %公路客运量(万人) glkyl=[12815 15543 19326 22864 26150 28468 30882 39375 45759 49589 52560 48726 51083 56495 62767 83606 92090 101370 107317 108654 111847 112872 116997 126007 128980]; %公路货运量(万吨) glhyl=[2690 2998 3012 3042 3616 3728 3988 9397 17680 19426 24128 24354 22879 24162 28957 36439 40593 45052 47400 45224 45338 45815 47151 55705 63532]; % X: %市区人数(万人) sqrs=[47.8 52.2 59 63.1 68.5 70 72 79.2 84.7 88.6 91 93 97.5 103.7 110 123 129.6 132 137.6 141 145 155.5 157 163.1 165.9]; %市区机动车数(万辆) sqjdcs=[1.2 1.5 1.7 1.8 2.1 2.7 2.9 3.2 3.4 3.7 4.3 4.4 4.5 4.7 5 5.2 5.4 5.7 5.9 6.2 6.3 6.7 7.2 7.5 7.9]; %市区公路面积(万平方公里) sqglmj=[0.2 0.25 0.25 0.3 0.45 0.5 0.5 0.7 0.7 0.75 0.8 0.8 0.85 1.1 1.25 1.3 1.3 1.5 1.55 1.75 1.8 1.8 2.05 2.1 2.3]; % 作出因变量Y与各自变量的样本散点图 % 作散点图的目的主要是观察因变量Y与各自变量间是否有比较好的线性关系,以便选择恰当的数学模型形式 subplot(2,3,1),plot(sqrs,glkyl,'g*'), subplot(2,3,2),plot(sqjdcs,glkyl,'k+'), subplot(2,3,3),plot(sqglmj,glkyl,'ro'), subplot(2,3,4),plot(sqrs,glhyl,'g*'), subplot(2,3,5),plot(sqjdcs,glhyl,'k+'), subplot(2,3,6),plot(sqglmj,glhyl,'ro') %若这些点大致分布在一条直线旁边,有比较好的线性关系,可以采用线性回归 %% bb=[sqrs;sqjdcs;sqglmj]'; %输入数据矩阵 cc=[glkyl;glhyl]'; %输出数据矩阵Y m=3 %自变量个数 n=25 %样本数量n V=[]; %将来的系数矩阵β sh=[]; X=[ones(n,1) , bb]; %自变量矩阵(注意:第一列全为1) % ones(n,1)表示有常数项,如果无常数项可以去掉 alpha=0.0005 %% %第二步:回归法求回归系数[b,bint,r,rint,stats] = regress(y,X,alpha) % b:回归系数,bint:回归系数的区间估计,r:残差,rint:置信区间 % stats:用于检验回归模型的统计量。有4个数值:判定(决定)系数r^2,F统计量观测值,检验的p的值,误差方差的估计 % alpha:是显著性水平p(缺省时默认0.05) for n=1:2 % 因为有两个y,所以回归两次 [b,bint,r,rint,ss]=regress(cc(:,n),X,alpha); %regress函数 V(:,n)=b; %系数矩阵 sh(:,n)=r; %残差矩阵 ss(n,:)=ss %检验的相关值 end %% %模型检验:利用检验统计量R,F,p 的值判断该模型是否可用。 % 模型合格的要求: % 相关系数R绝对值在0.8~1范围内。 if ss(1,1)<0.81 | ss(2,1)<0.81 disp("NO:相关系数<0.81") end % F>F(m,n-m-1),后者用finv(p,m,n)计算,其中m为自变量的数量,n为样本数量。 F=finv(alpha,m,n) if ss(1,2)<F | ss(2,2)<F disp("NO:F<F(m,n-m-1)") end % p<alpha if ss(1,3)>F | ss(2,3)>F disp("NO:p>alpha") end % 绘制残差图:以观测值序号为横坐标,残差为纵坐标所得到的散点图称为时序残差图 rcoplot(r,rint) %% %预测结果带回验算 并绘图与原始数据对比 nf=1980:2004; RLW=X*V; figure;plot(nf,cc,'b:+'); hold on plot(nf,RLW,'r-.'); grid on %利用线性拟合出的数据来预测05、06的公路客运量和货运量 nh=[170.67 175.7 7.927 8.1949 2.1955 2.2818]'; nn=[zeros(2,1),nh]; ycc=nn*V; %预测结果
更多相关内容 -
MATLAB源码集锦-多元线性回归代码
2021-02-14 18:50:31MATLAB源码集锦-多元线性回归代码 -
基于MATLAB的多元非线性回归模型,matlab多元线性回归模型实例,matlab
2021-09-10 21:14:16基于MATLAB的多元非线性回归模型学习资料 -
多元线性回归代码_Matlab多元线性回归_多元线性回归_
2021-10-04 03:49:47里面包含适用于Matlab 多元线性回归的代码 -
多元线性回归matlab代码
2018-10-19 17:48:44多元线性回归:在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,... -
多元线性回归MATLAB程序
2016-11-04 11:41:32多元线性回归MATLAB程序 -
MATLAB源码集锦-多元非线性回归代码
2021-02-14 18:49:15MATLAB源码集锦-多元非线性回归代码 -
matlab多元线性回归方程代码
2022-07-26 21:13:48自用matlab多元线性回归方程代码clear clc x1=[25277 23689 23751 23522 23252 22824 22712 22423 22427]';%0-14岁人口(万人) x2=[19064 17767 16724 15961 15037 14524 13902 13262 12777]';%65岁及以上人口(万人) x3=[26.2 23.8 23.7 23.4 22.9 22.6 22.5 22.2 22.2]';%少儿抚养比(%) x4=[19.7 17.8 16.8 15.9 15 14.3 13.7 13.1 12.7]';%老年抚养比(%) y=[7.18 7.03 6.55 5.96 5.38 4.99 4.69 4.35 3.98]';%人均GDP万 2020-2019-2018... %x5=[965871 99552 100065 100528 100943 100978 101032 101041 100718]';%15-64岁人口(万人) %x6=[7.07 7.09 7.08 7.06 7.04 7.07 7.12 7.13 7.13]';%人口死亡率(%) X=[ones(size(y)) x1 x2 x3 x4];%%开始分析 [b,bint,r,rint,stats]=regress(y,X,0.0005);%b回归系数,bint回归系数的区间估计,r残差,rint置信区间,stats检验回归模型的统计量 %stats检验回归模型的统计量。有4个数值:判定系数R^2,F统计量观测值,检验p的值,误差方差的估计 %ifp小于0.001,则拟合有效 hold on; y=b(1)+b(2)*x1+b(3)*x2+b(4)*x3+b(5)*x4; %代入已经求得的参数,拟合函数式 plot(y,'kx-'); b1=b(1) b2=b(2) b3=b(3) b4=b(4) b5=b(5)
-
多元线性回归_多元线性回归MATLAB代码_多元线性回归_
2021-09-29 14:01:23实现了多元线性回归模型matlab的代码 -
多元线性回归,多元线性回归r方 要多少,matlab
2021-09-10 17:50:39多元线性回归代码以及多元非线性回归代码数学建模 -
MATLAB多元线性回归
2018-08-19 23:45:22MATLAB多元线性回归: 基于MATLAB的多元非线性回归模型.pdf 多元线性回归建模以及MATLAB和SPSS求解.pdf MATLAB语言在多元线性回归中的应用.pdf -
非线性回归,非线性回归模型,matlab
2021-09-10 23:15:25包括指数、对数、幂指数、双曲线、Logistic、多项式、Gamma等模型的非线性拟合,每行代码均有中文注释便于理解 -
【MATLAB】多元线性回归分析regress,MATLAB代码
2021-08-05 21:14:14Matlab篇----常用的回归分析Matlab命令(regress篇) 语法 b =regress(y,X) [b,bint] =regress(y,X) [b,bint,r] =regress(y,X) [b,bint,r,rint] =regress(y,X) [b,bint,r,rint,stats] =regress(y,X) 实例: ...【数学建模】scatter画散点图、scatter3画三维散点图,mshgrid网格坐标,mesh画网格曲线图
Matlab篇----常用的回归分析Matlab命令(regress篇)
语法
b = regress(y,X)
[b,bint] = regress(y,X)
[b,bint,r] = regress(y,X)
[b,bint,r,rint] = regress(y,X)
[b,bint,r,rint,stats] = regress(y,X)
实例:
目标函数:y=Ax1^2+Bx1^2+Cx1+Dx2+Ex1*x2+F (这是一个二次函数,两个变量,大写的字母是常数)
clc;clear;close all; %% 导入数据 y=[7613.51 7850.91 8381.86 9142.81 10813.6 8631.43 8124.94 9429.79 10230.81 ... 10163.61 9737.56 8561.06 7781.82 7110.97]'; x1=[7666 7704 8148 8571 8679 7704 6471 5870 5289 3815 3335 2927 2758 2591]'; x2=[16.22 16.85 17.93 17.28 17.23 17 19 18.22 16.3 13.37 11.62 10.36 9.83 9.25]'; X=[ones(size(y)) x1.^2 x2.^2 x1 x2 x1.*x2]; %% 开始分析 [b,bint,r,rint,stats] = regress(y,X); %b回归系数、bint回归系数的区间估计、r残差、rint置信区间、 %stats检验回归模型的统计量。有4个数值:判定系数R^2,F统计量观测值,检验p的值,误差方差的估计 %ifp小于0.001,则拟合有效 %% scatter可用于画散点图 scatter3(x1,x2,y,'filled') ; %% 拟合,三维视图显示 hold on %在刚刚那副散点图上接着画 x1fit = min(x1):100:max(x1); %设置x1的数据间隔 x2fit = min(x2):1:max(x2); %设置x2的数据间隔 [X1FIT,X2FIT] = meshgrid(x1fit,x2fit); %返回二维网格平面的坐标 YFIT=b(1)+b(2)*X1FIT.^2+b(3)*X2FIT.^2+b(4)*X1FIT ... +b(5)*X2FIT+b(6)*X1FIT.*X2FIT; %代入已经求得的参数,拟合函数式 mesh(X1FIT,X2FIT,YFIT) %X1FIT,X2FIT是网格坐标矩阵,YFIT是网格点上的高度矩阵 view(10,10) %改变角度观看已存在的三维图,第一个10表示方位角,第二个表示俯视角。 %方位角相当于球坐标中的经度,俯视角相当于球坐标中的纬度 xlabel('x1') %设置X轴的名称 ylabel('x2') %设置y轴的名称 zlabel('y') %设置z轴的名称
效果图:
-
【Matlab】多元线性回归
2022-05-25 06:26:50多元线性回归学习一元线性回归
一个旧东西随着时间价格也在变动,数据如下:
1 2 3 4 5 6 7 8 9 10 265 1942 1493 1086 766 539 485 291 224 202 绘图
clear all clc x=1:10; y=[2650,1942,1493,1086,766,539,485,291,224,202]; for i=1:10 plot(x(i),y(i),'or'); hold on end xlabel('x'); ylabel('y');
由图可发现,x和y呈现指数关系,于是我们假设 z = ln y z=\ln y z=lny,记作 z i = ln y i z_i=\ln y_i zi=lnyi,重新绘图:
clear all clc x=1:10; y=[2650,1942,1493,1086,766,539,485,291,224,202]; z=zeros(size(y)); N=length(y); hold on for i =1:N z(i)=log(y(i)); plot(x(i),z(i),'ok'); end xlabel('x'); ylabel('y');
分析发现现在变得更拟合了。各点基本处于一条直线上,可以认为 z = a + b x z=a+bx z=a+bx求参
clear all clc x=1:10; y=[2650,1942,1493,1086,766,539,485,291,224,202]; z=zeros(size(y)); N=length(y); for i =1:N z(i)=log(y(i)); end [p,s]=polyfit(x,z,1)
返回结果:
可以得出:a=8.1671,b=-0.2984,即 z = 8.1671 − 0.2984 x z=8.1671-0.2984x z=8.1671−0.2984x多元线性回归
regress函数
%调用格式 [b,bint,r,rint,stats]=regress(y,x,alpha)
alpha为显著性水平,缺省设定为0.05, b表示为输出量, bint为回归系数估计值和他们的置信区间,r为残差, rint为置信区间, stats适用于检验回归模型的统计量。
案例如下:x 1 x_1 x1 1.376 1.375 1.387 1.401 1.412 1.428 1.445 1.477 x 2 x_2 x2 0.450 0.475 0.485 0.5 0.535 0.545 0.55 0.575 x 3 x_3 x3 2.17 2.554 2.676 2.713 2.823 3.088 3.122 3.262 x 4 x_4 x4 0.8922 1.161 0.5346 0.9589 1.0239 1.0499 1.1065 1.1387 y y y 5.19 5.3 5.6 5.82 6 6.06 6.45 6.95 %开始多元回归 clear all clc 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.170,2.554,2.676,2.713,2.823,3.088,3.122,3.262]; x4=[5.19,1.161,0.5346,0.9589,2.0239,1.0499,1.1065,1.1387]; y=[5.19,5.3,5.6,5.82,6,6.06,6.45,6.95]; save data x1 x2 x3 x4 y%保存数据 load data %取出数据 y=[y'];%转置矩阵 x=[ones(size(x1')),x1',x2',x3',x4']; [b,bint,r,rint,stats]=regress(y,x)
根据b可以解得该函数关系式为:
y = − 20.5297 + 19.1269 x 1 + 8.0045 x 2 − 1.5867 x 3 − 0.1465 x 4 y=-20.5297+19.1269x_1+8.0045x_2-1.5867x_3 -0.1465x_4 y=−20.5297+19.1269x1+8.0045x2−1.5867x3−0.1465x4matlab 文档非常有用
文档连接:点击这里
-
02a 多元线性回归分析.rar_matlab 多元回归_多元回归_多元线性回归_多元线性回归MATLAB代码_线性回归
2022-07-15 18:46:33基于矩阵运算的多元线性回归分析,基于回归计算程序包的多元线性回归分析等MATLAB程序实现;各检验值齐全 -
[学习笔记]多元线性回归的matlab实现
2020-05-20 21:56:311. Matlab函数 函数:regress [b,bint,r,rint,stats]=regress(y,x);...b:多元线性回归的系数估计值 bint:还返回系数估计值的 95% 置信区间的矩阵 bint。 r :还返回由残差组成的向量 r。 rint :返回矩 -
多元线性回归模型 matlab代码 自用
2017-04-17 22:39:51还是校数学建模。。。发了N篇博客。。。这个代码是判断影响因素权重比的。 今天总算学会怎么把代码插入了。。...x1=[ 760.72 773.48 784.17 794.62 806.14 814.58 822.30 832.31 842.42 854.19];...x2=[ 36770 40561 ... -
利用MATLAB进行多元线性回归
2021-05-06 05:06:27《利用MATLAB进行多元线性回归》由会员分享,可在线阅读,更多相关《利用MATLAB进行多元线性回归(15页珍藏版)》请在人人文库网上搜索。1、2.线性回归,b=regress(y,X) b,bint,r,rint,s=regress(y,X,alpha,输入: y因... -
多元线性回归模型-数学建模类-matlab详解
2021-11-17 21:06:59(2)多元线性回归之洞庭湖污染物案例实测 (3) 参考文档: (1)一元线性回归之旧轿车价格案例 以x表示使用年数,y表示相应的平均价格。根据表中x和y的数据,建立一个数据模型,分析就轿车平均价格与其使用念书... -
基于MATLAB的多元非线性回归模型
2018-08-11 18:49:36讲解MATLAB在多元非线性回归方面的一篇学术论文,非常值得参考,很有用。 -
用matlab对多元回归方程预测代码-Linear-Regression-Housing-data:线性回归房屋数据
2021-06-19 09:14:27用matlab对多元还原概率预测代码线性回归模型解释 这是一个包含使用Sklearn、pandas、Numpy 和 Seaborn进行线性回归的解释的存储库。 还执行探索性数据分析(EDA)和可视化。 本说明分为以下部分,我们将详细介绍每... -
数学建模——多元线性回归 /多元线性拟合 (工具:matlab)
2021-08-27 11:54:55本文旨在能快速地用 matlab 实现基于多元线性回归拟合/分析。小编已将代码都封装好了。在分析样例的同时,也简单地讲解了其原理和相关参数。该系列文章是个人在参加2021年暑假国赛数模的培训,自己记录的心得与体会... -
Matlab 多元线性回归
2021-03-13 09:10:17用matlab实现的多元线性回归 -
多元线性回归 - MATLAB & Simulink - MathWorks 中国
2021-04-18 03:38:29线性回归简介Regression models describe the relationship between a dependent variable and one or more independent variables.Fit a linear regression model and examine the result.In stepwise regression, ... -
matlab多元参数非线性回归模型代码-ReadingKDNuggets:机器学习,大数据
2021-05-21 14:55:30matlab多元参数非线性回归模型代码阅读KDNuggets的注意事项 在从[ KDNuggets ]()阅读Blog时写了本笔记。 在本简要说明中,它仅包含我感兴趣但并不足够熟悉的术语和主题。 有关完整内容,请参阅原件。 聚类:旨在... -
使用MATLAB进行多元线性回归预测
2022-05-11 21:41:20使用多元线性回归对电力数据进行预测,其中时间、干球温度、露点温度、湿球温度、温度、电价为自变量、电力负荷为因变量. 时间 干球温度 露点温度 湿球温度 温度 电价 电力负荷 0.5 23.9 ... -
基于matlab的多元线性回归分析
2020-04-23 14:41:29在社会生活及生产实践中会经常遇到一种...知道了这些,我们就可以对该量变化所反映的相关问题做出分析和评价,并对其未来发展趋势进行预测和控制,这里就要用到数理统计中一个非常重要而普遍的分析方法,即回归分析法。 -
MATLAB实现多元线性回归
2019-08-05 15:17:37%Multiple_linear_regression 多元线性回归 %对于输入数据(必须是去除量纲之后的数据)进行多元线性回归处理 % 输入变量 % X:由自变量组成的矩阵(第一列必须全为1) % y:因变量(列向量) % a...