MATLAB初学_回归方法_3.0

一 回归方法

    以数据为基础而建立数学模型的方法称为数据建模方法,回归方法是最为常用的方法。在以下的内容中会介绍一元回归、多元回归、逐步回归以及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,表示的线性相关性越强。如果满足\mbox{F}_{1-\alpha }(1,\mbox{n}-2)<\mbox{F},则认为变量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的关系。

 


:最小二乘法拟合曲线为:

y=\mbox{k}\cdot x+\mbox{b}

将多组离散数据拟合为一条直线,这条之间经过点(\bar{x},\bar{y}),k值将通过下面方程确定。

\mbox{k}=\frac{\sum (x-\bar{x})(y-\bar{y})}{\sum (x-\bar{x})^2} =\frac{\sum xy-n\bar{x}\cdot \bar{y}}{\sum x^2-n\bar{x}^2}

其中注意\bar{x}=\frac{\sum x}{n}

\mbox{F}_{1-\alpha }(1,\mbox{n}-2)可以查F分布表,也可以直接调用MATLAB命令\mbox{finv}(1-\alpha ,1,\mbox{n}-2)计算得到。

一般的用\mbox{F}_{1-\alpha }(\mbox{m},\mbox{n}-\mbox{m}-1)进行比较,其中m表示自变量个数,n表示数据的组数。因文中就一个自变量因此其m为1。


[1]卓金武,王鸿钧等,《MATLAB数学建模方法与实践》(第三版)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值