admin管理员组文章数量:1660205
一 回归方法
以数据为基础而建立数学模型的方法称为数据建模方法,回归方法是最为常用的方法。在以下的内容中会介绍一元回归、多元回归、逐步回归以及Logisitic回归。
1.1 一元回归
1.1.1一元线性回归
clc,clear all,close all
x=[23.80,27.60,31.60,32.40,33.70,34.90,43.20,52.80,63.80,73.40];
y=[41.40,51.80,61.70,67.90,68.70,77.50,95.90,137.40,155.0,175.0];
将所需处理的数据做散点图,查看数据整体分布;
figure
plot(x,y,'r*')
xlabel('x(职工工资总额)','fontsize',12)
ylabel('y(商品零售总额)','fontsize',12)
set(gca,'linewidth',2);
结果如下;
采用最小二乘法拟合;
Lxx=sum((x-mean(x)).^2);
Lxy=sum((x-mean(x)).*(y-mean(y)));
b1=Lxy/Lxx;
b0=mean(y)-b1*mean(x);
y1=b1*x+b0;
hold on
plot(x,y1,'linewidth',2);①
结果如下;
采用LinearModel.fit函数进行线性回归
m2=LinearModel.fit(x,y)
m2.plot
得到结果,其中线性拟合的k值为-23.549,b值为2.7991:
图像化后可以得到更加多的信息:
采用regress函数进行线性回归
Y=y';
X=[ones(size(x,2),1),x'];
[b,bint,r,rint,s]=regress(Y,X)
结果如下:
b表示回归方程的斜率和截距,bint表示斜率和截距的置信区间,r表示残差,rint表示残差的置信区间,s包含决定系数、F值、F(1,n-2)分布大于F值得概率p,剩余方差。
当决定系数越接近1,表示的线性相关性越强。如果满足②,则认为变量y和x显著地有线性关系。如果p<alpha(是显著水平,当输入缺省时默认为0.05),表示线性模型可用。剩余方差主要用来比较模型是否有改进,其值越小说明模型精度越高。
1.1.2 非线性回归
对数形式回归
clc,clear all,close all
x=[1.5,4.5,7.5,10.5,13.5,16.5,19.5,22.5,25.5];
y=[7.0,4.8,3.6,3.1,2.7,2.5,2.4,2.3,2.2];
plot(x,y,'*','linewidth',2);
xlabel('x','fontsize',12)
ylabel('y','fontsize',12)
set(gca,'linewidth',2);
m1=@(b,x)b(1)+b(2)*log(x);
nonlinfit1=fitnlm(x,y,m1,[0.01;0.01])
b=nonlinfit1.Coefficients.Estimate;
Y1=b(1,1)+b(2,1)*log(x);
hold on
plot(x,Y1,'--k','linewidth',2)
输出结果:
指数形式回归
m2='y~b1*x^b2';
ninlinfit2=fitnlm(x,y,m2,[1;1])
b1=ninlinfit2.Coefficients.Estimate(1,1);
b2=ninlinfit2.Coefficients.Estimate(2,1);
Y2=b1*x.^b2;
hold on
plot(x,Y2,'r','linewidth',2)
legend('原始数据','a+b*lnx','a*x^b')
输出结果:
通过图或者决定系数可以看出指数形式更符合x和y的关系。
①:最小二乘法拟合曲线为:
将多组离散数据拟合为一条直线,这条之间经过点,k值将通过下面方程确定。
其中注意。
②:可以查F分布表,也可以直接调用MATLAB命令计算得到。
一般的用进行比较,其中m表示自变量个数,n表示数据的组数。因文中就一个自变量因此其m为1。
[1]卓金武,王鸿钧等,《MATLAB数学建模方法与实践》(第三版)
版权声明:本文标题:MATLAB初学_回归方法_3.0 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729851332a1215454.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论