简单使用matlab做回归分析、拟合分析

前言

这里是简单做一元非线性,及多元线性。
一元:就是只有一个X。比如:y=x^2+x+1;
多元:就是多个X,比如:y=x1+x2+1;
首先几对数据,你得大约能知道他们是什么关系。

一元线非线性回归

百度百科:
MATLAB软件提供了基本的曲线拟合函数的命令,多项式函数拟合:a=polyfit(xdata,ydata,n),
其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入。输出参数a为拟合多项式 y=a1x^n+…+anx+a,共n+1个系数。
多项式在x处的值y可用下面程序计算。
y=polyval(a,x,m)
线性:m=1, 二次:m=2, …
polyfit的输出是一个多项式系数的行向量。为了计算在xi数据点的多项式值,调用MATLAB的函数polyval。

例子

close all;clear all;
x=[0,10,50,100,150,200,250,300,350,400,450,500,550,600]';
y=[0,792.5,1976,3410,4794,6127,7411,8644,9827,10960,12040,13070,14060,14990]';
plot(x,y);

%% 一元线非线性回归
[p,S] = polyfit(x,y,2);%polyfit函数基于最小二乘法, 如果是用一元polyfit(x,y,1) 则结果p与regress()结果b 是一样的
%%拟合后对应的多项式即为y=p(1)*x^n + p(2)*x^(n-1) +…+ p(n)*x + p(n+1)。
%S是规模为1×1的结构数组,包括R(系数矩阵的QR分解的上三角阵),df(自由度),normr(拟合误差平方和的算术平方根)。
%%
p,
f=polyval(p,x);%作出拟合函数
  figure();
 plot(x,y,x,f);
 title( "一元线非线性回归")
 %% 相关系数 
 r=corrcoef(x,y); 
 r,
 %%

结果:

p =
   -0.0116   31.3118  317.3271

表达式为 y=-0.0116x^2+31.3118x+317.3271;
 y=-0.0116*x^2+31.3118*x+317.3271

多元线性回归

regress用于一元及多元线性回归,本质上是最小二乘法。在Matlab 2014a中,输入help regress ,会弹出和regress的相关信息。
对应生成的表达式 为y=b1+x1b2+x2b3 +…+x(n)* b(n+1),
调用格式:

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)
[...] = regress(Y,X,ALPHA)
参数解释:
B:回归系数,是个向量(“the vector B of regression coefficients in the  linear model Y = X*B”)。
BINT:回归系数的区间估计(“a matrix BINT of 95% confidence intervals for B”)。
R:残差( “a vector R of residuals”)。
RINT:置信区间(“a matrix RINT of intervals that can be used to diagnose outliers”)。
STATS:用于检验回归模型的统计量。有4个数值:判定系数R^2,F统计量观测值,检验的p的值,误差方差的估计。
ALPHA:显著性水平(缺少时为默认值0.05)。

例子

close all;clear all;
x=[0,10,50,100,150,200,250,300,350,400,450,500,550,600]';
y=[0,792.5,1976,3410,4794,6127,7411,8644,9827,10960,12040,13070,14060,14990]';
plot(x,y);
X=[ones(14,1),x];%ones是一个项全1的数据,用来生成b1常数项的 
%x=[ones(14,1),x1,x2,x3]; % 如有x2 x3 多元数据项,
[b,bint,r,rint,stats]=regress(y,X);%基于最小二乘法
% y=b1+x1*b2+x2*b3 +…+x(n)* b(n+1)  b为对应的参数 b1为F(最后那个常数项) ,b2为x1(第一个参数),b3为x2,b4为x3,b5为x4,b6为E。bint为b的95%置信区间
 %%
figure();
Y=x*b(2)+b(1);
plot(x,y,x,Y);
lgd = legend('原线','回归线','Location','North');
set(lgd,'Orientation','horizon','Box','off')
title( "多元线性回归");
 
figure();
b,bint,stats,rcoplot(r,rint)   %rcoplot是用来画残差图的,以便发现异常点

结果:

b =
  832.0708
   24.6682
bint =
   1.0e+03 *
    0.4087    1.2554
    0.0234    0.0259
stats =
   1.0e+05 *
    0.0000    0.0187    0.0000    1.7337

那么表达式为 y=832.0708+24.6682*x;
y=832.0708+24.6682*x
在这里插入图片描述

多元线非线性回归

利用nlinfit函数实现数据非线性拟合

  • 15
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
第1章MATLAB7.0简介1.1MATLAB的特点1.1.1MATLAB的基本特点1.1.2MATLAB7.0的新特点1.2MATLAB桌面简介1.2.1启动按钮1.2.2命令窗口1.2.3命令历史窗口1.2.4T作空间窗口1.2.5当前目录浏览器1.3MATLAB的帮助系统1.3.1帮助浏览器1.3.2help函数和doc函数第2章数组和矩阵2.1表达式2.1.1变量2.1.2数值表示2.1.3运算符2.1.4函数2.2构造数组2.2.1用增量法构造数组2.2.2用linspace函数构造数组2.3构造矩阵2.3.1简单的创建方法2.3.2构造特殊矩阵2.3.3聚合矩阵2.3.4组合不同类型的数据2.4获取矩阵的元素2.4.1获取单个元素2.4.2线性索引2.4.3获取多个元素2.5获取与矩阵有关的信息2.6缩放和重塑矩阵2.6.1放大矩阵2.6.2重塑矩阵2.7导入数据2.7.1导入文本数据2.7.2导入MAT文件数据2.7.3使用ImportWizard工具2.8矩阵的代数运算2.9矩阵的逻辑运算第3章数值计算3.1方程求解3.1.1求解线性方程组3.1.2乔累斯基、LU和QR分解3.1.3特征值3.2多项式3.2.1多项式求根3.2.2多项式评价3.2.3卷积和去卷积3.2.4多项式求导3.2.5多项式曲线拟合3.3插值3.3.1一维插值3.3.2维插值3.3.3插值和多维数组3.4数据分析和统计3.4.1面向列的数据集合3.4.2基本数据分析函数3.4.3方差和相关系数3.4.4有限差分3.4.5数据预处理3.4.6回归分析3.4.7曲线拟合第4章M文件设计4.1M文件编辑器4.2脚本式M文件和函数式M文件4.3流控制4.4函数变量4.4.1检查输入变量的个数4.4.2传递变量4.4.3解包varargin中的内容4.4.4打包varargout4.4.5变量列表中的varargin和varargout4.4.6返回输出变量4.5子函数和私有函数4.6编程技巧4.6.1函数句柄4.6.2函数函数4.6.3向量化4.6.4预分配内存空间4.7面向对象编程第5章图形用户界面(GU,)设计5.1GUIDE简介5.1.1启动GUIDE””5.1.2输出编辑器5.1.3GUIDE模板5.1.4运行GUI5.1.5GUIFIG文件和M文件5.2创建GUI5.2.1设计GUI5.2.2完成GUI5.2.3设置GUI组件的属性5.2.4GUI编程5.2.5保存和运行GUI第6章编译和接口6.1MATLAB编译器4.06.1.1MATLAB编译器4.0的新特点6.1.2MATLAB编译器的使用6.1.3编译独立应用程序6.2MATLAB与VisualBasic接口6.2.1COM生成器1.16.2.2用COM生成器生成组件6.2.3在VisualBasic中使用组件6.2.4使用COM生成器时可能遇到的问题第7章二维图形绘制7.1线形图、条形图和面积图7.2饼图7.3误差条图7.4散点图7.5直方图7.6对数坐标图和半对数坐标图7.7多轴图7.8极坐标图7.9等值线图7.10向量图7.11帕累托图7.12火柴杆图7.13彗星图7.14罗盘图7.15羽列图7.16阶梯图7.17玫瑰花图7.18函数的图形7.19动画7.19.1以电影方式创建动画7.19.2以重绘方式创建动画第8章交互绘图与编辑8.1绘图工具8.1.1图形窗口的工具条、8.1.2绘图工具——交互绘图8.1.3使用绘图工具8.1.4用工作空间中的变量绘图8.1.5指定数据源8.1.6编辑图形8.1.7使用图形编辑模式8.1.8保存结果8.2数据查看工具8.2.1数据光标——交互显示数据的值8.2.2维和三维图形的缩放8.2.3平移图形8.2.4三维视图的交互旋转8.2.5分析图形数据8.3标注图形8.3.1如何标注图形8.3.2对齐工具——对齐和分布对象8.33添加标题8.3.4添加坐标系标签8.3.5添加文本标注8.3.6添加箭头和直线第9章句柄图形对象9.1面向对象的思维方式9.2句柄图形对象的组织9.2.1句柄图形对象的层次结构9.2.2句柄图形对象的类型9.3图形窗Figure对象9.3.1用于绘图的图形窗口9.3.2Figure对象用GUI9.3.3Root对象——Figure对象的父对象9.4核心图形对象9.4.1核心图形对象简介9.4.2创建核心图形对象9.4.3父对象9.4.4高级函数和低级函数9.4.5简化的调用语法9.5绘图对象9.5.1创建绘图对象9.5.2编程识别绘图对象9.5.3链接图形和变量9.5.4保存与MATLAB以前版本相兼容的图形9.6Annotation对象9.7组对象9.7.1创建组对象9.7.2变换对象9.8对象的属性9.8.1设置和查询属性值9.8.2默认属性9.8.3示例——设置默认线型9.9句柄操作9.9.1获取对象句柄9.9.2当前图形、坐标轴和对象9.9.3用属性值查找对象——findobi函数9.9.4复制对象9.9.5删除对象9.10句柄图形的视图控制9.10.1指定图形输出的目标区域9.10.2设置图形窗口和坐标系9.10.3测试持续绘图(Hold)状态9.10.4防止FigureAxes对象成为绘图目标区域9.10.5关闭请求函数9.11把句柄保存到M文件9.12可包含其他对象的对象9.13句柄图形对象的回调9.13.1图形对象的回调属性9.13.2函数句柄回调9.14Figure对象9.14.1在面板上锚定图形窗口9.14.2与窗口锚定有关的属性9.14.3确定图形窗口的位置和大小9.15坐标系属性9.15.1标签和外观属性9.15.2坐标系的位置和大小9.15.3在同一图形窗口中显示多个坐标系9.15.4单个坐标轴的控制9.15.5使用多个x轴和y轴第10章定制二维图形10.1基本图形元素10.1.1直线段、多义线和曲线——Line对象10.1.2矩形、圆角矩形、椭圆、圆及对应的区域图形——Rectangle对象10.1.3多边形——Patch对象10.1.4文本——Text对象10.2定制二维图形第11章三维模型的建立11.1线形模型的建立11.1.1参数曲线11.1.2样条曲线11.1.3用给定数据绘图11.1.4三维等值线图11,1.5三维向量图11.2曲面模型的建立11.2.1函数表示的曲面11.2.2~--次曲面11.2.3样条曲面11.2.4用给定数据绘图t12.5非均匀采样数据的曲面图11.2.6表面图绘制的数据格式问题11.3多边形对象模型11.3.1patch函数11.3.2用patch函数创建面片11.4消隐控制第12章三维模型的着色12.1网格图、刻面图和曲面图的着色12.1.1主要的着色技术12.1.2颜色查找表12.1.3索引着色表面——直接映射和比例化映射12.1.4示例——表面曲率向颜色映射12.1.5真彩色表面12.1.6纹理映射12.2多边形模型的着色12.2.1面片只有一个小面的情况12.2.2面片有多个小面的情况12.2.3控制面片着色的属性12.2.4面片边的着色第13章光照与材质13.1Light对象13.2光照命令13.3给场景添加光照13.4影响光照效果的属性13.5光照算法13.6图形对象的反射特性——材质13.6.1镜面反射和漫反射13.6.2环境光13.6.3镜面反射指数13.6.4镜面反射光的颜色13.6.5背面光照13.6.6material函数13.6.7一个例子第14章透明性14.1使对象透明14.1.1alpha值14.1.2与透明性相关的属性14.2指定一个单独的透明度值14.3将数据映射给透明度14.3.1alpha数据数组的大小14.3.2将alpha数据映射至,Jalpha查找表14.3.3示例——将数据映射到颜色或透明度14.4选择一个alpha查找表第15章交互操作15.1视点和相机15.1.1用方位角和仰角设置视点15.1.2交互工具——相机15.2用相机工具条进行场景空间变换15.2.1相机工具条15.2.2交换主轴15.2.3盘旋15.2.4平移15.2.5缩放15.2.6滚动15.2.7漫游15.3用与相机有关的函数实现场景空间变换15.3.1与相机有关的函数15.3.2示例1——平移图像15.3.3示例2——穿越场景15.3.4低级相机属性15.4投影15.4.t正交投影和透视投影15.4.2投影类型和相机位置15.4.3坐标轴方向上的显示比率第16章MATLAB提供的科学计算可视化工具16.1剖面图16.1.1slice函数16.1.2切片等值线图16.1.3切片流线图16.2表现流动特征16.2.1流线图16.2.2流锥图16.2.3流沙图16.2.4流带图16.2.5流管图16.2.6卷曲图16.3等值面16.4等帽盖16.5减少面片上小面的个数16.6减少体数据集中元素的个数16.7缩小面片中的小面16.8子体积16.9体包围盒16.10计算几何问题16.10.1散点数据的三角化和插值16.10.2高维散点集的剖分和插值
本书是MATLAB中文论坛神经网络版块数千个帖子的总结,充分强调“案例实用性、程序可模仿性”。所有案例均来自于论坛会员的切身需求,保证每一个案例都与实际课题相结合。, 读者调用案例的时候,只要把案例中的数据换成自己需要处理的数据,即可实现自己想要的网络。如果在实现过程中有任何疑问,可以随时在MATLAB中文论坛与作者交流,作者每天在线,有问必答。, 该书共有30个MATLAB神经网络的案例(含可运行程序),包括BP、RBF、SVM、SOM、Hopfield、LVQ、Elman、小波等神经网络;还包含PSO(粒子群)、灰色神经网络、模糊网络、概率神经网络、遗传算法优化等内容。该书另有31个配套的教学视频帮助读者更深入地了解神经网络。, 本书可作为本科毕业设计、研究生项目设计、博士低年级课题设计参考书籍,同时对广大科研人员也有很高的参考价值。, -------, 目录, 第1章 P神经网络的数据分类——语音特征信号分类, 第2章 BP神经网络的非线性系统建模——非线性函数拟合, 第3章 遗传算法优化BP神经网络——非线性函数拟合, 第4章 神经网络遗传算法函数极值寻优——非线性函数极值寻优, 第5章 基于BP_Adaboost的强分类器设计——公司财务预警建模, 第6章 PID神经元网络解耦控制算法——多变量系统控制, 第7章 RBF网络的回归——非线性函数回归的实现, 第8章 GRNN的数据预测——基于广义回归神经网络的货运量预测, 第9章 离散Hopfield神经网络的联想记忆——数字识别, 第10章 离散Hopfield神经网络的分类——高校科研能力评价, 第11章 连续Hopfield神经网络的优化——旅行商问题优化计算, 第12章 SVM的数据分类预测——意大利葡萄酒种类识别, 第13章 SVM的参数优化——如何更好的提升分类器的性能, 第14章 SVM的回归预测分析——上证指数开盘指数预测, 第15章 SVM的信息粒化时序回归预测——上证指数开盘指数变化趋势和变化空间预测, 第16章 自组织竞争网络在模式分类中的应用——患者癌症发病预测, 第17章SOM神经网络的数据分类——柴油机故障诊断, 第18章Elman神经网络的数据预测——电力负荷预测模型研究, 第19章 概率神经网络的分类预测——基于PNN的变压器故障诊断, 第20章 神经网络变量筛选——基于BP的神经网络变量筛选, 第21章 LVQ神经网络的分类——乳腺肿瘤诊断, 第22章 LVQ神经网络的预测——人脸朝向识别, 第23章 小波神经网络的时间序列预测——短时交通流量预测, 第24章 模糊神经网络的预测算法——嘉陵江水质评价, 第25章 广义神经网络的聚类算法——网络入侵聚类, 第26章 粒子群优化算法的寻优算法——非线性函数极值寻优, 第27章 遗传算法优化计算——建模自变量降维, 第28章 基于灰色神经网络的预测算法研究——订单需求预测, 第29章 基于Kohonen网络的聚类算法——网络入侵聚类, 第30章 神经网络GUI的实现——基于GUI的神经网络拟合、模式识别、聚类
### 回答1: 多元线性回归是一种常见的数据建模方法,即利用多个自变量来预测因变量的数学模型,其中各自变量之间相互独立。matlab是一款强大的数学软件,可以用来进行多元线性回归的建模和数据分析。 在matlab中,多元线性回归的建模主要包含以下步骤: 1. 数据准备:将需要建模的数据导入matlab,并对数据进行梳理和清洗,保证数据的质量和准确性。 2. 回归模型选择:根据实际问题和数据特征,选择适合的回归模型,比如标准多元线性回归、岭回归、lasso回归等等。 3. 回归模型建立:根据选择的回归模型,用matlab进行建模,包括设定自变量和因变量、设置回归方程等等。 4. 回归分析:用matlab进行回归分析,包括分析回归方程的拟合优度、检验回归系数的显著性、诊断模型的假设前提等等。 5. 模型应用:根据分析结果,调整回归模型,用于实际问题的预测和分析。 总之,matlab多元线性回归是一种十分实用和有效的数据分析和建模方法,可以广泛用于各种科学研究、工程设计和商业分析领域,是值得推广和应用的重要工具。 ### 回答2: 多元线性回归是一种广泛应用于数据分析和机器学习中的统计方法,用于建立多个自变量和一个因变量之间的关系模型。在MATLAB中,可以使用函数regress和fitlm来执行多元线性回归分析。 regress函数可用于仅含数值预测变量和响应变量的线性回归模型。在MATLAB命令行或脚本中,使用格式[y_hat, beta] = regress(y,X)执行多元线性回归分析。其中,y_hat表示预测响应变量的值,beta为估计的回归系数向量。该函数要求输入数据矩阵X的列是预测变量,向量y是响应变量。 另一个函数fitlm用于建立更加灵活的回归模型,允许指定非线性和交互作用项、分层和混合效应以及随机效应等。在MATLAB使用fitlm构建模型,然后可使用plotResiduals和plotSlice函数评估模型质量和预测结果。这里需要注意,使用fitlm进行分析,需要先出入一个指向数据表的变量或者一个变量名和变量所在工作区的名称。 总之,MATLAB提供了多种方法来执行多元线性回归分析,并可以通过可视化方式评估结果。因此,用户可以在MATLAB中方便快捷地创建、测试和改进多元线性回归模型。 ### 回答3: 多元线性回归是一种常用的数据分析方法,它通过建立一个包含多个自变量的数学模型来预测一个或多个因变量的值。在matlab中,使用多元线性回归可以通过fitlm函数来实现。 fitlm函数需要输入一个包含自变量和因变量的数据矩阵,以及一个包含自变量和因变量的名称的表(table)。fitlm函数会根据数据矩阵和表中的名称来建立多元线性回归模型,并通过最小二乘法来估算模型中的系数。fitlm函数还可以计算模型的R²和p值,用于评价模型的拟合程度和显著性。 可以使用plot函数可视化模型的拟合效果,使用predict函数来预测新的因变量值。在应用多元线性回归时,需要注意避免过拟合和欠拟合的问题。过拟合主要发生在样本量较小、自变量过多时,可以通过交叉验证等方法来解决。欠拟合主要发生在模型过于简单时,可以通过增加自变量或改进模型形式来解决。 总之,matlab的多元线性回归功能非常强大,能够帮助我们建立并评估多元线性回归模型,并对数据进行预测和分析。同时,要注意数据的质量和模型的合理性,以确保模型的预测能力和准确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值