求一个多元线性回归的matlab代码

y=a1*x1+a2*x2+a3*x3+常数,这是模型。
数据:y=35 43 55 47 43 57 26 27 28 29 22 29 19 11 14 23 20 22 13 8 3 27 26 5
x1=2 2 2 2 2 2 5 5 5 5 5 5 7 7 7 7 7 7 10 10 10 10 10 10
x2=0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1
x3=0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75
用MATLAB求系数a1 a2 a3
还有怎么对它进行回归分析呢,置信区间, R平方啊,F统计量值,与统计量F对应的概率P等等,衷心感谢你的回答,我提高悬赏 ,

程序是没错的,但显然拟合效果很不理想。

y=[35 43 55 47 43 57 26 27 28 29 22 29 19 11 14 23 20 22 13 8 3 27 26 5];

x1=[2 2 2 2 2 2 5 5 5 5 5 5 7 7 7 7 7 7 10 10 10 10 10 10];
x2=[0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1];
x3=[0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75];
a=y/[x1;x2;x3]%这是没有常数的y=a1*x1+a2*x2+a3*x3

b=y/[x1;x2;x3;ones(size(x1))]%这是有常数的y=b1*x1+b2*x2+b3*x3+b4

_________________________________
如果要求置信区间就要用regress函数了

y=[35 43 55 47 43 57 26 27 28 29 22 29 19 11 14 23 20 22 13 8 3 27 26 5];

x1=[2 2 2 2 2 2 5 5 5 5 5 5 7 7 7 7 7 7 10 10 10 10 10 10];
x2=[0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1];
x3=[0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75 0.25 0.50 0.75];

[a,ai]=regress(y',[x1' x2' x3'])%ai就是95%置信区间,这是没有常数的y=a1*x1+a2*x2+a3*x3
[b,bi]=regress(y',[x1' x2' x3' ones(size(x1'))])%这是有常数的y=b1*x1+b2*x2+b3*x3+b4
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-28
robustfit试试看
相似回答