MATLAB解决偏最小二乘回归分析法

已知三个自变量值x、y、z和一个函数值e,通过新方法求得e与自变量之间的函数关系xyzexyze1.24241200-0.0000850400400200-0.05326... 已知三个自变量值x、y、z和一个函数值e,通过新方法求得e与自变量之间的函数关系
x y z e x y z e
1.2424 1 200 -0.0000850 400 400 200 -0.0532630
1.2424 1 350 -2.7112000 400 400 350 0.9908900
1.2424 1 500 0.3282800 400 400 500 1.2144000
1.2424 400 200 0.0027129 600 1 200 -0.7455400
1.2424 400 350 1.0997000 600 1 350 -0.5715200
1.2424 400 500 2.7984000 600 1 500 -0.4054000
200 1 200 -0.6427100 600 400 200 1.9441000
200 1 350 2.0863000 600 400 350 0.7021700
200 1 500 -0.4607700 600 400 500 0.6903000
200 400 200 3.4253000 800 1 200 -6.4449000
200 400 350 4.8946000 800 1 350 -2.2801000
200 400 500 2.4998000 800 1 500 0.1483200
400 1 200 -2.2702000 800 400 200 -3.7869000
400 1 350 -0.8187100 800 400 350 0.2750100
400 1 500 -0.6684200 800 400 500 0.0515480
下列数据用于预测验证。
x y z e
1.2424 391 129.3769 -0.1019500
200 560 600 0.2769700
400 447 200 -0.1765000
800 234 500 0.2896000
1.2424 250 129.3769 1.3258000
200 300 129.376 0.8630000
200 100 200 0.8914800
紧急求助,谁能给出详细的MATLAB求此题的过程,谢谢了!
展开
 我来答
化学工程
2008-10-19 · TA获得超过8901个赞
知道大有可为答主
回答量:2212
采纳率:80%
帮助的人:3411万
展开全部
线性回归和二次线性回归都不太理想,用神经网络吧。
这是线性回归的程序:

A=[...
1.2424 1 200 -0.0000850 400 400 200 -0.0532630
1.2424 1 350 -2.7112000 400 400 350 0.9908900
1.2424 1 500 0.3282800 400 400 500 1.2144000
1.2424 400 200 0.0027129 600 1 200 -0.7455400
1.2424 400 350 1.0997000 600 1 350 -0.5715200
1.2424 400 500 2.7984000 600 1 500 -0.4054000
200 1 200 -0.6427100 600 400 200 1.9441000
200 1 350 2.0863000 600 400 350 0.7021700
200 1 500 -0.4607700 600 400 500 0.6903000
200 400 200 3.4253000 800 1 200 -6.4449000
200 400 350 4.8946000 800 1 350 -2.2801000
200 400 500 2.4998000 800 1 500 0.1483200
400 1 200 -2.2702000 800 400 200 -3.7869000
400 1 350 -0.8187100 800 400 350 0.2750100
400 1 500 -0.6684200 800 400 500 0.0515480]
B=[A(:,1:4);A(:,5:end)]
x=B(:,1:3),y=B(:,4)
format short g
X1=[ones(length(y),1),x]
B1=regress(y,X1)
[m,n]=size(x)
X2=[];
for i=1:n
for j=1:n
if i<=j
X2=([X2,x(:,i).*x(:,j)]);
else
continue
end
end
end
X=[X1,X2];
B2=regress(y,X)
[y X*B2 y-X*B2]

plot(y,X1*B1,'o',y,X*B2,'*')
hold on,line([min(y),max(y)],[min(y),max(y)])
axis([min(y) max(y) min(y) max(y)])
C=[...
1.2424 391 129.3769 -0.1019500
200 560 600 0.2769700
400 447 200 -0.1765000
800 234 500 0.2896000
1.2424 250 129.3769 1.3258000
200 300 129.376 0.8630000
200 100 200 0.8914800]
test=[[ones(length(C),1),C(:,1:3)]*B1,C(:,4)]

结果:
A =

1.2424 1 200 -8.5e-005 400 400 200 -0.053263
1.2424 1 350 -2.7112 400 400 350 0.99089
1.2424 1 500 0.32828 400 400 500 1.2144
1.2424 400 200 0.0027129 600 1 200 -0.74554
1.2424 400 350 1.0997 600 1 350 -0.57152
1.2424 400 500 2.7984 600 1 500 -0.4054
200 1 200 -0.64271 600 400 200 1.9441
200 1 350 2.0863 600 400 350 0.70217
200 1 500 -0.46077 600 400 500 0.6903
200 400 200 3.4253 800 1 200 -6.4449
200 400 350 4.8946 800 1 350 -2.2801
200 400 500 2.4998 800 1 500 0.14832
400 1 200 -2.2702 800 400 200 -3.7869
400 1 350 -0.81871 800 400 350 0.27501
400 1 500 -0.66842 800 400 500 0.051548

B =

1.2424 1 200 -8.5e-005
1.2424 1 350 -2.7112
1.2424 1 500 0.32828
1.2424 400 200 0.0027129
1.2424 400 350 1.0997
1.2424 400 500 2.7984
200 1 200 -0.64271
200 1 350 2.0863
200 1 500 -0.46077
200 400 200 3.4253
200 400 350 4.8946
200 400 500 2.4998
400 1 200 -2.2702
400 1 350 -0.81871
400 1 500 -0.66842
400 400 200 -0.053263
400 400 350 0.99089
400 400 500 1.2144
600 1 200 -0.74554
600 1 350 -0.57152
600 1 500 -0.4054
600 400 200 1.9441
600 400 350 0.70217
600 400 500 0.6903
800 1 200 -6.4449
800 1 350 -2.2801
800 1 500 0.14832
800 400 200 -3.7869
800 400 350 0.27501
800 400 500 0.051548

x =

1.2424 1 200
1.2424 1 350
1.2424 1 500
1.2424 400 200
1.2424 400 350
1.2424 400 500
200 1 200
200 1 350
200 1 500
200 400 200
200 400 350
200 400 500
400 1 200
400 1 350
400 1 500
400 400 200
400 400 350
400 400 500
600 1 200
600 1 350
600 1 500
600 400 200
600 400 350
600 400 500
800 1 200
800 1 350
800 1 500
800 400 200
800 400 350
800 400 500

y =

-8.5e-005
-2.7112
0.32828
0.0027129
1.0997
2.7984
-0.64271
2.0863
-0.46077
3.4253
4.8946
2.4998
-2.2702
-0.81871
-0.66842
-0.053263
0.99089
1.2144
-0.74554
-0.57152
-0.4054
1.9441
0.70217
0.6903
-6.4449
-2.2801
0.14832
-3.7869
0.27501
0.051548

X1 =

1 1.2424 1 200
1 1.2424 1 350
1 1.2424 1 500
1 1.2424 400 200
1 1.2424 400 350
1 1.2424 400 500
1 200 1 200
1 200 1 350
1 200 1 500
1 200 400 200
1 200 400 350
1 200 400 500
1 400 1 200
1 400 1 350
1 400 1 500
1 400 400 200
1 400 400 350
1 400 400 500
1 600 1 200
1 600 1 350
1 600 1 500
1 600 400 200
1 600 400 350
1 600 400 500
1 800 1 200
1 800 1 350
1 800 1 500
1 800 400 200
1 800 400 350
1 800 400 500

B1 =

-1.5119
-0.0031153
0.005381
0.0049226

m =

30

n =

3

Warning: X is rank deficient to within machine precision.
> In regress at 82
In try24 at 34

B2 =

-3.5118
0.00071381
0
0.016309
-9.3052e-006
-2.9789e-006
1.2068e-005
2.1238e-005
-5.5521e-006
-2.1576e-005

ans =

-8.5e-005 -1.1103 1.1102
-2.7112 -0.44256 -2.2686
0.32828 -0.74579 1.0741
0.0027129 1.8433 -1.8406
1.0997 2.1787 -1.079
2.7984 1.5432 1.2552
-0.64271 -0.86144 0.21873
2.0863 0.16607 1.9202
-0.46077 0.22264 -0.68341
3.4253 1.8559 1.5694
4.8946 2.5511 2.3435
2.4998 2.2754 0.22441
-2.2702 -1.3532 -0.91704
-0.81871 0.036396 -0.85511
-0.66842 0.45503 -1.1234
-0.053263 1.1265 -1.1797
0.99089 2.1837 -1.1928
1.2144 2.2701 -1.0557
-0.74554 -2.5893 1.8438
-0.57152 -0.8377 0.26618
-0.4054 -0.057013 -0.34839
1.9441 -0.34741 2.2915
0.70217 1.0719 -0.36974
0.6903 1.5203 -0.83
-6.4449 -4.5699 -1.875
-2.2801 -2.4562 0.17611
0.14832 -1.3135 1.4618
-3.7869 -2.5657 -1.2212
0.27501 -0.78432 1.0593
0.051548 0.026126 0.025422

C =

1.2424 391 129.38 -0.10195
200 560 600 0.27697
400 447 200 -0.1765
800 234 500 0.2896
1.2424 250 129.38 1.3258
200 300 129.38 0.863
200 100 200 0.89148

test =

1.2251 -0.10195
3.832 0.27697
0.63187 -0.1765
-0.28359 0.2896
0.46639 1.3258
0.11625 0.863
-0.6123 0.89148
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
2008-10-17 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2922万
展开全部
大哥,至少得给个表达式吧.
另外你的数据是什么啊.
乱啊.
上面那八列,我看懂了.
但后面四列是干嘛的啊.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式