当前位置:文档之家› Matlab多元线性回归

Matlab多元线性回归

Matlab多元线性回归
[ b , bint , r , rint , stats ]=regress ( y , x ) ,
其中b 是回归方程中的参数估计值,bint 是b 的置信区间,r 和rint 分别表示残差及残差对应的置信区间。

StatS 数组包含三个数字,分别是相关系数,F 统计量及对应的概率p 值。

拟合结果:
Y=b(1)x(1)+b(2)x(2)+b(3)x(3)+…+b(n)x(n)
b(1)是系数,x(1)为全1的一个列向量。

注意:不是插值。

x=[1097 1284 1502 1394 1303 1555 1917 2051 2111 2286 2311 2003 2435 2625 2948 3155 3372];%因变量时间序列数据
y=[698 872 988 807 738 1025 1316 1539 1561 1765 1762 1960 1902 2013 2446 2736 2825];%自变量时间序列数据
X=[ones(size(x')),x'];
[b,bint,r,rint,stats]=regress(y',X,0.05);%调用一元回归分析函数
rcoplot(r,rint)%画出在置信度区间下误差分布.
举例:
x =
1 2 4 9
1 4 3 7
1 5 9 0
1 9 1 8
>> y=[10 3 90 48]';
>> [ b , bint , r , rint , stats ]=regress ( y , x )
得到的结果
b =
-186.8333
16.0238
21.8571
8.5952
bint =
NaN NaN
NaN NaN
NaN NaN
NaN NaN
r =
1.0e-013 *
-0.5684
-0.9948
-0.1421
0.1421
rint =
NaN NaN
NaN NaN
NaN NaN
NaN NaN
stats =
1 NaN NaN NaN
另外,用b=inv(x)*y
得到的结果和上面用regression得到的一样。

可见,求逆的问题也是用了最小二乘的原理。

但是,regress更优于inv,体现在当x的元素存在缺陷时。

举例:
x =
1 0 0 4
1 0 0 3
1 0 0 5
1 0 0 8
y =
3
4
3
9
[ b , bint , r , rint , stats ]=regress ( y , x )
Warning: X is rank deficient to within machine precision.
b =
-0.9643
1.1429
bint =
-12.0010 10.0724
0 0
0 0
-0.9245 3.2102
r =
-0.6071
1.5357
-1.7500
0.8214
rint =
-9.2316 8.0173
-1.9141 4.9855
-7.4997 3.9997
0.2465 1.3964
stats =
0.7388 5.6575 0.1405 3.2321。

相关主题