回归分析


1 原理
1、三条命令
polyfit(x,y,n)---拟合成一元幂函数(一元多次)
regress(y,x)----可以多元,              
nlinfit(x,y,’fun’,beta0)  (可用于任何类型的函数,任意多元函数,应用范围最主,最万能的)
2、同一个问题,这三条命令都可以使用,但结果肯定是不同的,因为拟合的近似结果,没有唯一的标准的答案。相当于咨询多个专家。
3、回归的操作步骤:
根据图形(实际点),选配一条恰当的函数形式(类型)---需要数学理论与基础和经验。(并写出该函数表达式的一般形式,含待定系数)------选用某条回归命令求出所有的待定系数。所以可以说,回归就是求待定系数的过程(需确定函数的形式)
一、回归命令
一元多次拟合polyfit(x,y,n);一元回归polyfit;多元回归regress---nlinfit(非线性)
二、多元回归分析
对于多元线性回归模型(其实可以是非线性,它通用性极高):

设变量的n组观测值为
记 ,,则 的估计值为排列方式与线性代数中的线性方程组相同(),拟合成多元函数---regress
使用格式:左边用b=[b, bint, r, rint, stats]右边用=regress(y, x)或regress(y, x, alpha)
---命令中是先yx, 
---须构造好矩阵x(x中的每列与目标函数的一项对应)
---并且x要在最前面额外添加全1列/对应于常数项
---y必须是列向量
---结果是从常数项开始---polyfit的不同。)
其中: b为回归系数,的估计值(第一个为常数项),bint为回归系数的区间估计,r: 残差 ,rint: 残差的置信区间,stats: 用于检验回归模型的统计量,有四个数值:相关系数r2F值、与F对应的概率p和残差的方差(前两个越大越好,后两个越小越好),alpha: 显著性水平(缺省时为0.05,即置信水平为95%),(alpha不影响b,只影响bint(区间估计)。它越小,即置信度越高,则bint范围越大。显著水平越高,则区间就越小)(返回五个结果)---如有n个自变量-有误(n个待定系数),则b 中就有n+1个系数(含常数项,---第一项为常数项)(b---b的范围/置信区间---残差r---r的置信区间rint-----点估计----区间估计 


 例116名成年女子的身高与腿长所得数据如下:
身高  143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164
腿长  88  85  88  91  92  93  93  95  96  98  97  96  98  99  100 102
程序如下: 
x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]';
 y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]';
  plot(x,y,'r+')
  z=x;
  x=[ones(16,1),x]; 
 [b,bint,r,rint,stats]=regress(y,x);  
 b,bint,stats

运行结果得:
b =

  -16.0730
    0.7194


bint =

  -33.7071    1.5612
    0.6047    0.8340


stats =

0.9282  180.9531    0.0000    1.7437
即;的置信区间为[-33.70171.5612], 的置信区间为[0.6047,0.834]; r2=0.9282, F=180.9531, p=0.0。p<0.05, 
可知回归模型 y=-16.073+0.7194x 成立.
即身高和腿长的关系式如下:y=-16.073+0.7194x
残差分析:


从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型 y=-16.073+0.7194x能较好的符合原始数据,而第二个数据可视为异常点(而剔除)。
预测及作图:
plot(x,y,'r+')    
hold on  
a=140:165;    
 b=b(1)+b(2)*a; 
 plot(a,b,'g')



例2 
观测物体降落的距离s与时间t的关系,得到数据如下表,求s关于t的回归方程
t   (s) 1/30    2/30    3/30    4/30    5/30    6/30    7/30
s   (cm)    11.86   15.67   20.60   26.69   33.71   41.93   51.13

t   (s) 8/30    9/30    10/30   11/30   12/30   13/30   14/30
s   (cm)    61.49   72.90   85.44   99.08   113.77  129.54  146.48

方法一:
程序如下:
t=1/30:1/30:14/30;
 s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90  85.44 99.08 113.77 129.54 146.48];
 [p,S]=polyfit(t,s,2)
 结果得:

p =

  489.2946   65.8896    9.1329
即回归模型为:


方法二:
t=1/30:1/30:14/30;
s=[11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90  85.44 99.08 113.77 129.54 146.48];
  T=[ones(14,1), t', (t.^2)']  %???是否可行???等验证...----因为有三个待定系数,所以有三列,始于常数项
 [b,bint,r,rint,stats]=regress(s',T);
  b,stats
得结果如下:
b =

    9.1329
   65.8896
  489.2946


stats =

   1.0e+07 *

    0.0000    1.0378    0.0000    0.0000
得回归模型如下:


与方法与相同
例3
  设某商品的需求量与消费者的平均收入、商品价格的统计数据如下,建立回归模型,预测平均收入为1000、价格为6时的商品需求量.
需求量 100 75  80  70  50  65  90  100 110 60
收入  1000    600     1200    500 300 400 1300    1100    1300    300
价格  5   7   6   6   8   7   5   4   3   9


选择纯二次模型,即 
用户可以任意设计函数
程序如下:
x1=[1000 600 1200 500 300 400 1300 1100 1300 300];
 x2=[5 7 6  6 8 7 5 4 3 9];
 y=[100 75 80 70 50 65 90 100 110 60]';
X=[ones(10,1) x1' x2' (x1.^2)' (x2.^2)'];  %×¢Òâ¼¼ÇÉÐÔ??????
[b,bint,r,rint,stats]=regress(y,X);  %ÕâÊÇÍòÄÜ·½·¨??????Ðè½øÒ»²½ÑéÖ¤
 b
 stats   

运行得结果如下:
b =

  110.5313
    0.1464
  -26.5709
   -0.0001
    1.8475


stats =

    1.0000       Inf         0   20.5771
故回归模型为:
剩余标准差为4.5362, 说明此回归模型的显著性较好.

--------(此题还可以用 rstool(X,Y)命令求解,详见回归问题详解)


  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值