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