本文主要是介绍回归方程代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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')
%希望能解决你的问题
这篇关于回归方程代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!