回归方程代码

regress()函数主要用于线性回归,一元以及多元的。它可以提供更多的信息,残差之类的。

调用格式:

[b,bint,r,rint,stats]=regress(y,X,alpha)

bint是回归系数的区间估计,r是残差,rint是置信区间,stats是用于检验回归模型的统计量,有三个数值:相关系数r^2,F值,与F对应的概率P,alpha是显著性水平(缺省的时候为0.05)。相关系数r^2越大,说明回归方程越显著;与F对应的概率P<alpha时候拒绝H0,回归模型成立。

 

 

例如:

x1=[120 140 190 130 155 175 125 145 180 150];

x2=[100 110 90 150 210 150 250 270 300 250];

y= [102 100 120 77 46 93 26 69 65 85]';

x=[ones(10,1) x1' x2'];

x_O=[x1' x2'];

[b,bint,r,rint,stats]=regress(y,x)

figure;rcoplot(r,rint);

[b,bint,r,rint,stats]=regress(y,x_O)

figure;rcoplot(r,rint);

 

 

y=[7613.51  7850.91  8381.86  9142.81 10813.6 8631.43 8124.94 9429.79 10230.81 10163.61 9737.56 8561.06 7781.82 7110.97]; 

x1=[7666 7704 8148 8571 8679 7704 6471 5870 5289 3815 3335 2927 2758 2591]; 

x2=[16.22 16.85 17.93 17.28 17.23 17 19 18.22 16.3 13.37 11.62 10.36 9.83 9.25] 

回归成y=ax1^2+bx1^2+cx1+dx2+ex1*x2+f(二次曲线) regress解法: 

y=[7613.51  7850.91  8381.86  9142.81 10813.6 8631.43 8124.94 9429.79 10230.81 10163.61 9737.56 8561.06 7781.82 7110.97]'; 

x1=[7666 7704 8148 8571 8679 7704 6471 5870 5289 3815 3335 2927 2758 2591]'; 

x2=[16.22 16.85 17.93 17.28 17.23 17 19 18.22 16.3 13.37 11.62 10.36 9.83 9.25]'; 

X=[ones(size(y)) x1.^2 x2.^2 x1 x2 x1.*x2]; 

[b,bint,r,rint,stats] = regress(y,X); format long 

b%b为对应的参数 b(1)为f,b(2)为a,b(3)为b,b(4)为c,b(4)为d,b(5)为e %b =  1.0e+004 * 

% -1.353935450267797 %  0.000000089381408 % -0.005811190715468 % -0.000605427789545 %  0.479983626458520 % -0.000037869040292 bint%为b的95%置信区间 %bint =  1.0e+004 * 

% -2.621944842897243  -0.085926057638351 %  0.000000034253753   0.000000144509063 % -0.027588831662545   0.015966450231609 % -0.001309493882546   0.000098638303455 %  0.119564693553906   0.840402559363135 % -0.000105954336341   0.000030216255756 

stats%stats的第三个参数为F检验的P值,p值很小P<0.001,说明拟合模型有效 

%stats =  1.0e+005 * %0.000008444011951 0.000086828553270 0.000000043344434   3.162249735298925 

scatter3(x1,x2,y,'filled')%以下绘图查看拟合效果 hold on 

x1fit = min(x1):100:max(x1); x2fit = min(x2):1:max(x2); 

[X1FIT,X2FIT] = meshgrid(x1fit,x2fit); 

YFIT=b(1)+b(2)*X1FIT.^2+b(3)*X2FIT.^2+b(4)*X1FIT+b(5)*X2FIT+b(6)*X1FIT.*X2FIT; 

 

 

 

 

var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);

 

 

 

 

 

 

 

mesh(X1FIT,X2FIT,YFIT) mesh(X1FIT,X2FIT,YFIT) view(10,10) xlabel('x1') ylabel('x2') zlabel('y') 

%希望能解决你的问题

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值