回归分析

根据学习PPT写的,但是没找到原文的链接。。。

一、一元回归分析

主要步骤:

(1)画观测值,观察是否符合线性分布;
(2)若符合线性分布:
a)采用最小二乘法或其他求取参数;
b)采用相关系数检验或F-检验或其他方法验证是否线性假设,结论的显著性;
c)若验证正确解决进一步的预测或控制问题。
(3)若非线性分布,采用二次或多次多项式进行拟合求解参数

1. 一元线性回归

(1)模型

(2)最小二乘法求解参数:

(3)相关系数检验:


(4)F-检验法


(5)预测与控制

MATLAB求解
%%求解模型参数
x=[1097 1284 1502 1394 1303 1555 1917 2051 2111 2286 2311 2003 2435 2625 2948 3155 3372];
y=[698 872 988 807 738 1025 1316 1539 1561 1765 1762 1960 1902 2013 2446 2736 2825];
X=[ones(size(x')),x'];
[c,cint,r,rint,stats]=regress(y',X,0.05);
rcoplot(r,rint);%画残差及其置信区间
2. 一元非线性

模型:

散点图符合一元二次分布,采用一元多项式拟合

x1=17:2:29;
x=[x1,x1];
y=[20.48 25.13 26.15 30.0 26.1 20.3 19.35 24.35 28.11 26.3 31.4 26.92 25.7 21.3];
[p,S]=polyfit(x,y,2); %返回p为模型参数,结构S可用作polyval输入以获得误差估计
[Y,delta]=polyconf(p,x,S);%生成置信度为95%预测区间
polytool(x,y,2);%交互式画图

交互式画面中用线条拟合x,y,可以改变Degrees改变线条的偏移量进行观察、改变横坐标寻找对应的y值或直接移动画面中的鼠标十字,导出各个参数与输入及结果的值。

二、多元回归分析

主要步骤:

(1)建立模型,多元线性或非线性回归;
(2)估计参数;
(3)若为线性假设,验证其是否正确;
(4)判断每个变量对Y的影响是否显著;
(5)利用回归方程进行预测或控制

1. 多元线性回归

(1)模型

(2)最小二乘法求解参数
在这里插入图片描述

(3)回归模型的假设检验

a)采用相关系数R衡量y与各x的相关程度,越接近1关系越密切

b)采用F-检验检验是否可以显著地说明是线性关系


(4)回归系数的检验,判断每个变量xi对y的影响是否显著


MATLAB实验
x1=[5.5 2.5 8.0 3.0 3.0 2.9 8.0 9.0 4.0 6.5 5.5 5.0 6.0 5.0 3.5 8.0 6.0 4.0 7.5 7.0]';
x2=[31 55 67 50 38 71 30 56 42 73 60 44 50 39 55 70 40 50 62 59]';
x3=[10 8 12 7 8 12 12 5 8 5 11 12 6 10 10 6 11 11 9 9]';
x4=[8 6 9 16 15 17 8 10 4 16 7 12 6 4 4 14 6 8 13 11]';
y=[79.3 200.1 163.2 200.1 146.0 177.7 30.9 291.9 160.0 339.4 159.6 86.3 237.5 107.2 155.0 201.4 100.2 135.8 223.3 195.0]';
X=[ones(size(x1)),x1,x2,x3,x4];
[b,bint,r,rint,stats]=regress(y,X);
rcoplot(r,rint);%画残差及其置信区间

(5)使用stepwise进行逐步回归,尽可能获得变量的最佳组合
使用stepwise regression的三种操作:
a)Forward selection:
以一个自变量开始,采用F-test/T-test计算解释显著性;逐个加入自变量,再次计算显著性进行比较,增加则接受,否则放弃;反复迭代直至遍历所有自变量。
b)Backforward elimination:
所有变量都放入模型,计算显著性;减少一个自变量看模型解释因变量的变异是否有显著变化;迭代所有自变量。
c)Bidirectional elimination:
增加一个自变量,对整个模型所有变量进行显著性检验,提出作用不显著的变量;最终尽可能得到一个最优的变量组。

在这里插入代码片
X=[x1,x2,x3,x4];
stepwise(X,y,[1,2,3])

如图所示界面,Coefficinets中蓝色为参与模型,红色为排除模型,可以得到各个变量的系数值、p值来判断是否呈现显著的线性关系,通过不同组合获得的RMSE、p、F等值可以得出最符合当前数据的模型。


优缺点:基于当前数据,可以最大程度解释因变量的变异;有偏,可能过拟合,此外,当两个变量对因变量的影响相近时,可能受到较大的噪声影响,使特征提取结果不稳定。

2. 非线性回归

模型:
(1)多项式模型

在MATLAB中使用rstool进行二次多项式回归分析时model有以下四种选择:

可用load reaction调出数据,用Whos查看数据名称及大小
MATLAB实现

X=给定数据;
y=给定数据;
rstool(X,y,'quadractic')

(2)自定义模型
例:
定义模型

model以文件形式定义,beta为模型中未知参数向量

在这里插入代码片
function yhat=hougen(beta,x) 
b1 = beta(1);
b2 = beta(2);
b3 = beta(3);
b4 = beta(4);
b5 = beta(5);

x1 = x(:,1);
x2 = x(:,2);
x3 = x(:,3);
yhat = (b1*x2 - x3/b5)./(1+b2*x1+b3*x2+b4*x3);

主程序

在这里插入代码片
x3=[470 300 10 8.55;
   285 80 10 3.79;
   470 300 120 4.82;
   470 80 120 0.02;
   470 80 10 2.75;
   100 190 10 14.39;
   100 80 65 2.54;
   470 190 65 4.35;
   100 300 54 13.00;
   100 300 120 8.5;
   100 80 120 0.05;
   285 300 10 11.32;
   285 190 120 3.13];
X=[x3(:,1:3)];
y=x3(:,4);
beta=[1,1,1,1,1];
bhat=nlinfit(X,y,'hougen',beta),pause
nlintool(X,y,'hougen',beta) 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值