数学建模作业11.1
- 格式:doc
- 大小:152.00 KB
- 文档页数:7
数学建模作业(第6组)
成员——纪鹏程:1017 宫庆周:1018 孔贺:1019
解
1234567,,,,,,xxxxxxx分别表示自变量直接蒸馏成,重整汽油,原油热裂化,原油催化油,聚合物,烷基化物,天然香精1y分别表示因变量原辛烷值,自变量的观测数据矩阵记为127()ijAa,因变量的观测数据矩阵记为121()ijBb。
(1)数据标准化。将各指标值ija转换成标准化指标值ija%,
(1)(1),1,2,,12,1,2,,7ijjijjaaijs%LL
其中12(1)11,12jijia(1)(1)211()(1,7),121njijjisajL即(1)(1),jjs为第j个自变量jx的样本均值和样本标准差。对应地,称
(1)(1),1,7jjjjxxjs%L
为标准化指标变量。
(2)求相关系数矩阵。表给出了这7个变量的简单相关系数矩阵。
表 相关系数矩阵
蒸馏(x1) 重整(x2) 热裂(x3) 催化(x4) 聚合(x5) 烷基(x6) 天然(x7) 天然(x7)
蒸馏(x1)
重整(x2)
脉搏(x3)
热裂(x3)
催化(x4)
聚合(x5)
天然(x7)
天然(x7)
(3)分别提出自变量组和因变量组的成分
求得的各对成分分别为
112345711212345721312340.09060.05750.08040.11600.02380.0657,3.18740.02120.38170.00720.21700.16060.0587,0.05820.05560.09950.07440.2825uxxxxxxvyuxxxxxxvyuxxxx%%%%%%%%%%%%%%%%%%57310.20480.0530,0.0094xxvy%%%
前三个成分解释自变量的比率为%,只要取三对成分即可。
(4)求三个成分对时,标准化指标变量与成分变量之间的回归方程
得自变量组和因变量组与123,,uuu之间的回归方程分别为 11232123312341232.99990.11861.0472,0.20952.79811.7237,3.00440.10881.0386,2.35430.7756-2.0454,xuuuxuuuxuuuxuuu%%%%51236123712311231.94610.12671.9001 ,3.05471.22600.4044,2.72791.32981.3002,3.18740.76170.3954.xuuuxuuuxuuuyuuu%%%%
(5)求因变量组与自变量组之间的回归方程
把(3)中成分iu代入(4)中iy%的回归方程,得到标准化指标变量之间的回归方程为112345670.13910.20870.13760.29320.03840.45640.1434yxxxxxxx%%%%%%%%将标准化变量,(1,7)jjyxj%%L分别还原成原始变量,jjyx,得到回归方程
1123456792.6769.82836.960216.66628.42184.388910.161334.529.yxxxxxxx
(6)模型的解释与检验
为了更直观、迅速地观察各个自变量在解释(1,7)jyjL时的边际作用,可以绘制回归系数图,见图。这个图是针对标准化数据的回归方程的。
12345678-0.3-0.2-0.100.10.20.30.40.5
图 回归系数的直方图
从回归系数的直方图中可以观察到,原有催化裂化油和烷基化舞变量在解释回归方程时起到了极为重要的作用。
为了考察这三个回归方程的模型精度,我们以ˆ(,)ijijyy为坐标值,对所有的样本点绘制预测图。ˆijy是第j个因变量指标在第i个样本点()ijy的预测值。 在这个预测图上,如果所有点都能在图的对角线附近均匀分布,则方程的拟合值与原值差异很小,这个方程的拟合效果就是满意的。原辛烷值的预测图见图。
01020304050607080901000102030405060708090100
原辛烷值预测图
图 原辛烷值得预测值
计算和画图的Matlab程序:
clc,clear
ab0=load(''); %原始数据存放在纯文本中
mu=mean(ab0); sig=std(ab0); %求均值和标准差
rr=corrcoef(ab0); %求相关系数矩阵
ab=zscore(ab0); %数据标准化
a=ab(: ,[1:end-1]);b=ab(:,end); %提出标准化后的自变量和因变量数据
[XL,YL,XS,YS,BETA,PCTVAR,MSE,stats]=plsregress(a,b)
xw=a\XS %求自变量提出成分系数,每列对应一个成分,这里xw等
yw=b\YS %求因变量提出成分的系数
ncomp=input('请根据PCTVAR的确定提出成分的个数ncomp=');
[XL2,YL2,XS2,YS2,BETA2,PCTVAR2,MSE2,stats2]=plsregress(a,b,ncomp)
n=size(a,2); m=size(b,2); %n是自变量的个数,m是因变量的个数
%原始数据回归方程的常数项
beta3(1,:)=mu(n+1:end)-mu(1:n)./sig(1:n)*BETA2([2:end],:).*sig(n+1:end);
%计算原始变量x1, …,xn的系数,每一列是一个回归方程
beta3([2:n+1], :)=(1./sig(1:n))'*sig(n+1:end).*BETA2([2:end], :) bar(BETA2','K') %画直方图
%求y1,…,ym的预测值
yhat=repmat(beta3(1, :),[size(a,1),1])+ab0(: ,[1:n])*beta3([2:end],:)
ymax=max([yhat;ab0(: ,[n+1:end])]); %求预测值和观测的最大值
%下面画y的预测图,并画直线y=x
figure
plot(yhat(: ,1),ab0(: ,n+1),'*',[0:ymax],[0:ymax],'Color','k')
legend('原辛烷值预测图',2)
结果显示为:
XL =
YL =
XS =
YS =
BETA =
+15 *
PCTVAR =
MSE =
stats =
W: [7x7 double]
T2: [12x1 double]
Xresiduals: [12x7 double]
Yresiduals: [12x1 double]
Warning: Rank deficient, rank = 6, tol = .
> In Ex11_1 at 8
xw =
0 0 0 0 0 0 0
yw =
请根据PCTVAR的确定提出成分的个数ncomp=3
XL2 =
YL2 =
XS2 =
YS2 =
BETA2 =
PCTVAR2 =
MSE2 =
stats2 =
W: [7x3 double] T2: [12x1 double]
Xresiduals: [12x7 double]
Yresiduals: [12x1 double]
beta3 =
yhat =