24小时热门版块排行榜    

查看: 625  |  回复: 2
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

永远的202

木虫 (著名写手)

[交流] 【求助】请教matlab的多元线性回归

请大家赐教,我3组数据y,x1,x2,想拟合初一个方程y=a*x1+b*x2+c,在matlab中编程如下:

A=[8.907 6.648 -0.61278
10.417 8.686 0.477
11.585 9.145 0
12.006 9.027 0.824
14.799 11.238 1]

y=A(:,1),x=A(:,2:3)
B=regress(y,x)
a=B(1),b=B(2),c=B(3)

但最后只有a和b值,没有c值,显示
??? Index exceeds matrix dimensions.:

Error in ==> C:\MATLAB6p5\work\ABC2.m
On line 9  ==> a=B(1),b=B(2),c=B(3)

这是怎么回事,应该怎么修改?文献中还报道回归后有R和p值,在哪儿?本人今天刚接触matlab,超级菜,上面那个方程也是跟着别人套的,请大侠详细指点,谢谢!

[ Last edited by 永远的202 on 2008-9-22 at 22:22 ]
回复此楼
努力做实验,减肥
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

juju550

金虫 (小有名气)

★ ★
永远的202(金币+2,VIP+0):谢谢
在用REGRESS这个函数计算时,自变量矩阵中,应加一列常数1,即自变量的第一列都为1,这样算,结果中才有常数项的
你写成这样就可以了
A=[8.907 1 6.648 -0.61278
10.417 1 8.686 0.477
11.585 1 9.145 0
12.006 1 9.027 0.824
14.799 1 11.238 1]

y=A(:,1),x=A(:,2:4)
[B ,bint,r,rint,stats]=regress(Y,X)

a=B(3),b=B(2),c=B(1)
3楼2008-10-14 11:33:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

suyuanhai

捐助贵宾 (正式写手)

举简单的例子说明

★ ★ ★
永远的202(金币+3,VIP+0):谢谢
Y=[1.29,1.67,2.02,2.33,2.515,2.66,1.35,1.68,2.06,2.34,2.52,2.58,1.48,1.76,2.15,2.38,2.60,2.66]';
X1=[3.10,3.51,4.04,4.47,4.72,5.01,3.06,3.46,3.99,4.424,4.677,4.92,2.896792326,3.302257434,3.833417869,4.263337972,4.516709294,4.743933941]';
X2=[6.115958,6.115958,6.115958,6.115958,6.115958,6.115958,6.388461,6.388461,6.388461,6.388461,6.388461,6.388461,6.807847,6.807847,6.807847,6.807847,6.807847,6.807847]';
X=[ones(18,1)  X1 X2];
[b ,bint,r,rint,stats]=regress(Y,X)

Y    X1    X2
-7.64782    8.00000    -9.12175E-3
-7.54668    8.09691    -9.12175E-3
-7.34199    8.17609    -9.12175E-3
-7.05552    8.24304    -9.12175E-3
-7.03339    8.30103    -9.12175E-3
-6.87943    8.39794    -9.12175E-3
-6.72584    8.47712    -9.12175E-3
-6.70333    7.39794    -7.81115E-3
-6.31158    7.57403    -7.81115E-3
-6.07109    7.69897    -7.81115E-3
-5.92082    7.77815    -7.81115E-3
-5.66959    7.87506    -7.81115E-3
-5.55440    7.94201    -7.81115E-3
-5.44249    8.00000    -7.81115E-3
-6.15243    6.69897    -6.82985E-3
-5.63264    6.87506    -6.82985E-3
-5.19791    7.00000    -6.82985E-3
-5.05849    7.09691    -6.82985E-3
-4.80410    7.17609    -6.82985E-3
-4.69680    7.22272    -6.82985E-3
-4.11919    7.39794    -6.82985E-3
拟合方程  Y=A+BX1+CX2
求A,B,C的值。

线性回归,regress命令:
Y=[]; %21*1
x1=[] %21*1
x2=[]  %21*1
X=[ones(21,1) x1 x2]  %21*3
[b ,bint,r,rint,stats]=regress(Y,X)
得b向量各分量对应于x=[1 x1 x2]各分量之系数
2楼2008-09-23 21:40:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见