提高班第三次作业.docx
《提高班第三次作业.docx》由会员分享,可在线阅读,更多相关《提高班第三次作业.docx(43页珍藏版)》请在冰豆网上搜索。
提高班第三次作业
数学建模提高班第三次作业
【作业1】
全国重点水泥企业经济效益综合评价例。
利用主成分综合评价全国重点水泥企业的经济效益。
原始数据(数据来自1984年中国统计年鉴)见表5-10。
1.利用一般的Matlab命令将数据标准化;
2.利用Matlab命令计算出相关矩阵的方差及特征值;
3.写出主成分的线性表达式;
4.利用统计工具箱中命令得到如上结果;
5.利用SPSS进行主成分分析;
6.对得到的结果作出解释。
解:
1.利用一般的Matlab命令将数据标准化
根据题意利用MATLAB编程如下:
loaddsc.txt;
[n,p]=size(dsc);
MEAN=mean(dsc);%求各变量的均值
STD=std(dsc);%求各变量的标准差
MEAN=ones(n,p)*diag(MEAN);
STD=ones(n,p)*diag(STD);
x=(dsc-MEAN)./STD%原始数据标准化
求解得标准化后的数据为:
x=
-0.3767-0.3579-0.1136-0.3667-0.0388-1.1777-1.3633-0.2771
0.0882-0.29390.0508-0.28730.3562-1.1777-0.40732.2531
-0.6046-0.62290.0568-0.5810-0.42770.29441.6425-0.7741
-1.8223-1.7643-1.6884-1.7200-1.1725-0.14721.0792-0.5482
1.58911.99441.21632.14141.28790.8833-1.86580.6039
2.12480.91002.29811.16810.7553-1.9138-0.41901.6432
0.96410.51770.62160.54210.858700.26351.2591
-0.6277-0.9322-0.8054-0.7824-2.87141.91380.2565-0.2771
0.1066-0.19740.1210-0.19110.32191.17771.0442-0.0964
0.30830.31040.98020.4389-0.0857-0.14720.0975-0.3223
-0.3660-0.2021-0.4453-0.28430.1121-0.7361-1.0711-0.7967
-0.5076-0.2567-0.9264-0.46290.4385-0.2944-0.4471-0.6160
-0.3998-0.1222-0.0164-0.1454-0.20950.88330.6795-1.2711
0.47921.8441-0.23161.47870.84490-0.5452-0.6838
-0.9556-0.8270-1.1177-0.9481-0.16980.44161.0559-0.0964
2.利用Matlab命令计算出相关矩阵的方差及特征值
根据题意利用MATLAB编程如下:
R=cov(x)%注释:
由于数据已经过标准化处理,故x的协方差矩阵等于其相关系数矩阵,即R=corrcoef(x).
[V,D]=eig(R);%注释:
函数eig的功能是对矩阵R进行正交对角化变换,矩阵D是以R的特征值为对角元的对角矩阵(对角元按从小到大的顺序排列),矩阵V是正交变换矩阵。
DD=[];%将特征值对角矩阵D改写为列向量DD
fori=p:
-1:
1%此处要注意eig函数的输出D中特征值的排列顺序
DD=[DD;D(i,i)];
end
OFFER=DD/sum(DD);%计算特征值的方差贡献率
cumOFFER=cumsum(DD)/sum(DD);%计算特征值的方差累计贡献率
OUTCOME=[DD,OFFER,cumOFFER]%综合输出计算结果
pri=1;
fori=1:
p
ifcumOFFER(i)<=0.85
pri=i+1;%取前几个特征值?
累计方差贡献超过85%
end
end
PCACOV=V(:
end:
-1:
end-pri+1)%输出对应特征值的正交单位化的特征向量,此处要注意eig函数的输出D中特征值的排列顺序和特征向量的排列顺序
PCASCORE=x*PCACOV;%主成份得分
Z=PCASCORE*OFFER([1:
pri])/cumOFFER(pri);%综合评分
[ZZ,I]=sort(Z,'descend');%样本排序[Y,I]=SORT(X,DIM,MODE)alsoreturnsanindexmatrixI.
scatter(ZZ,I);
variance=var(dsc)
variance=var(x)
variance=var(D)
variance=var(V)
求解得:
R=
1.00000.84920.92300.90170.6513-0.2650-0.50180.5983
0.84921.00000.69040.98820.7229-0.1034-0.59510.2649
0.92300.69041.00000.77400.5445-0.3168-0.34440.5306
0.90170.98820.77401.00000.6883-0.1057-0.59200.3295
0.65130.72290.54450.68831.0000-0.4436-0.43290.3589
-0.2650-0.1034-0.3168-0.1057-0.44361.00000.3755-0.4342
-0.5018-0.5951-0.3444-0.5920-0.43290.37551.0000-0.2538
0.59830.26490.53060.32950.3589-0.4342-0.25381.0000
OUTCOME=
4.85280.60660.6066
1.24400.15550.7621
0.87020.10880.8709
0.55180.06900.9398
0.35700.04460.9845
0.10200.01270.9972
0.02070.00260.9998
0.00150.00021.0000
PCACOV=
0.4337-0.0621-0.2580
0.4088-0.34130.1175
0.38950.0116-0.3797
0.4211-0.31760.0191
0.35860.06570.2220
-0.1835-0.7250-0.3187
-0.2944-0.0355-0.6354
0.25860.4975-0.4696
variance=
1.00001.00001.00001.00001.00001.00001.00001.0000
由以上结果可知:
原始数据矩阵的方差为
variance=
42.1972159.833044.7903101.5914276.723446.142918.30440.1959
标准化后数据矩阵的方差为
variance=
1.00001.00001.00001.00001.00001.00001.00001.0000
程序运行所得特征值矩阵的方差为:
variance=
0.00000.00010.00130.01590.03810.09470.19342.9437
程序运行所得特征向量矩阵的方差为:
variance=
0.33300.33010.27410.33550.29100.24400.32030.2119
标准化以后数据的协方差矩阵为
R=
1.00000.84920.92300.90170.6513-0.2650-0.50180.5983
0.84921.00000.69040.98820.7229-0.1034-0.59510.2649
0.92300.69041.00000.77400.5445-0.3168-0.34440.5306
0.90170.98820.77401.00000.6883-0.1057-0.59200.3295
0.65130.72290.54450.68831.0000-0.4436-0.43290.3589
-0.2650-0.1034-0.3168-0.1057-0.44361.00000.3755-0.4342
-0.5018-0.5951-0.3444-0.5920-0.43290.37551.0000-0.2538
0.59830.26490.53060.32950.3589-0.4342-0.25381.0000
特征值分别为:
4.8528
1.2440
0.8702
0.5518
0.3570
0.1020
0.0207
0.0015
3.写出主成分的线性表达式
由OUTCOME=
4.85280.60660.6066
1.24400.15550.7621
0.87020.10880.8709
0.55180.06900.9398
0.35700.04460.9845
0.10200.01270.9972
0.02070.00260.9998
0.00150.00021.0000
可知:
当选取前三个作为主成分时,累计贡献率达到87.09%>85%,故应选取前三个作为主成分,此时对应的特征变量分别为:
PCACOV=
0.4337-0.0621-0.2580
0.4088-0.34130.1175
0.38950.0116-0.3797
0.4211-0.31760.0191
0.35860.06570.2220
-0.1835-0.7250-0.3187
-0.2944-0.0355-0.6354
0.25860.4975-0.4696
主成分的线性表达式为:
4.利用统计工具箱中命令得到如上结果;
根据题意利用MATLAB编程如下:
(1)利用原始数据进行主成分分析:
【参数说明】
x——原始数据矩阵(样本点×变量)
PC——主成分系数向量(列)
SCORE——样本点的主成分得分
latent——x的协方差矩阵的特征值
tsquare——每一个样本点的HotellingT2统计量的值
PC=princomp(x)
[PC,SCORE,latent,tsquare]=princomp(x)
求解得:
PC=
0.43370.0621-0.25800.08130.12830.03910.84500.0534
0.40880.34130.1175-0.0650-0.0930-0.5009-0.1143-0.6525
0.3895-0.0116-0.3797-0.03600.56780.4317-0.4071-0.1679
0.42110.31760.01910.01640.0104-0.3338-0.26760.7335
0.3586-0.06570.2220-0.6520-0.45680.4278-0.00120.0321
-0.18350.7250-0.31870.2273-0.38020.3741-0.0351-0.0426
-0.29440.0355-0.6354-0.62330.0265-0.34240.02400.0366
0.2586-0.4975-0.46960.3498-0.5463-0.0978-0.1837-0.0324
PC=
0.43370.0621-0.25800.08130.12830.03910.84500.0534
0.40880.34130.1175-0.0650-0.0930-0.5009-0.1143-0.6525
0.3895-0.0116-0.3797-0.03600.56780.4317-0.4071-0.1679
0.42110.31760.01910.01640.0104-0.3338-0.26760.7335
0.3586-0.06570.2220-0.6520-0.45680.4278-0.00120.0321
-0.18350.7250-0.31870.2273-0.38020.3741-0.0351-0.0426
-0.29440.0355-0.6354-0.62330.0265-0.34240.02400.0366
0.2586-0.4975-0.46960.3498-0.5463-0.0978-0.1837-0.0324
SCORE=
0.0235-1.02251.45430.50110.49740.2747-0.0734-0.0285
0.8633-2.1992-0.42690.5619-0.8921-0.1006-0.2183-0.0492
-1.63050.2496-0.8188-0.96900.5565-0.0527-0.1356-0.0026
-3.7463-0.96070.2294-0.1343-0.1265-0.2148-0.05740.1017
3.88511.63450.30990.7261-0.57250.3345-0.14160.0659
3.8507-1.4825-1.0193-0.04150.9788-0.18050.19790.0277
1.6561-0.2719-0.9816-0.2524-0.63900.01980.13140.0033
-2.82441.1268-0.93692.07600.2830-0.21730.1066-0.0192
-0.50070.7948-1.0224-0.6127-0.41570.44920.1155-0.0245
0.71140.3158-0.2896-0.17430.84560.0396-0.2247-0.0112
-0.2500-0.35951.54850.14330.35150.20690.11760.0001
-0.6972-0.20711.2082-0.2885-0.33580.15410.2137-0.0134
-1.05701.1980-0.0706-0.55720.42160.2195-0.0593-0.0237
1.78081.39681.0643-0.4985-0.2531-0.88370.0042-0.0248
-2.0647-0.2130-0.2485-0.4800-0.6998-0.04870.0235-0.0016
latent=
4.8528
1.2440
0.8702
0.5518
0.3570
0.1020
0.0207
0.0015
tsquare=
5.9552
11.0559
4.8569
11.2313
12.1755
11.4199
3.8362
12.9637
5.9442
4.8739
4.3432
4.8346
3.4653
12.2177
2.8265
由以上结果可知:
利用统计工具箱中的命令得到的协方差矩阵特征值为:
latent=
4.8528
1.2440
0.8702
0.5518
0.3570
0.1020
0.0207
0.0015
(2)利用原始标准化后的数据进行主成分分析:
【参数说明】
R——原始数据相关系数矩阵(样本点×变量)
PC——主成分系数向量(列)
latent——相关矩阵R的特征值
explained——每一个主成分的方差贡献率
PC=pcacov(R);
[PC,latent,explained]=pcacov(R)
求解得:
PC=
-0.43370.0621-0.25800.0813-0.12830.0391-0.8450-0.0534
-0.40880.34130.1175-0.06500.0930-0.50090.11430.6525
-0.3895-0.0116-0.3797-0.0360-0.56780.43170.40710.1679
-0.42110.31760.01910.0164-0.0104-0.33380.2676-0.7335
-0.3586-0.06570.2220-0.65200.45680.42780.0012-0.0321
0.18350.7250-0.31870.22730.38020.37410.03510.0426
0.29440.0355-0.6354-0.6233-0.0265-0.3424-0.0240-0.0366
-0.2586-0.4975-0.46960.34980.5463-0.09780.18370.0324
latent=
4.8528
1.2440
0.8702
0.5518
0.3570
0.1020
0.0207
0.0015
explained=
60.6596
15.5495
10.8777
6.8975
4.4630
1.2749
0.2589
0.0189
由以上结果可知:
利用统计工具箱中的命令得到的相关矩阵R的特征值为:
latent=
4.8528
1.2440
0.8702
0.5518
0.3570
0.1020
0.0207
0.0015
主成分相关系数为:
PC=
-0.43370.0621-0.25800.0813-0.12830.0391-0.8450-0.0534
-0.40880.34130.1175-0.06500.0930-0.50090.11430.6525
-0.3895-0.0116-0.3797-0.0360-0.56780.43170.40710.1679
-0.42110.31760.01910.0164-0.0104-0.33380.2676-0.7335
-0.3586-0.06570.2220-0.65200.45680.42780.0012-0.0321
0.18350.7250-0.31870.22730.38020.37410.03510.0426
0.29440.0355-0.6354-0.6233-0.0265-0.3424-0.0240-0.0366
-0.2586-0.4975-0.46960.34980.5463-0.09780.18370.0324
根据第三问,取前三个主成分,可得主成分的线性表达式为:
5.利用SPSS进行主成分分析;
标准化后的原始数据进行主成分分析如下:
FactorAnalysis
Communalities(变量共同度)给出了该次分析从每个原始变量中提取的信息,表格下面的注示表明,该次分析是用Factoranalysis模块默认的信息提取方法即主成分分析完成的。
由图可知除第五个和第七个变量外,其余主成分均包含了各个变量80%以上的信息。
TotalVarianceExplained表显示了各主成分解释原始变量总方差的情况,SPSS默认保留特征根大于1的主成分,在本例中修改设置,保留3个主成分,这3个主成分集中了原始8个变量信息的87.087%,可见效果是比较好的。
前面三个主成分的方差占全部方差比例的87.087%>85%,可以选取前三个主成分分别为第一、第二、第三主成分,就基本上保留了原来指标的信息,这样由原来的八个指标转化为3个新指标,起到了降维的作用。
而当我们选取四个主成分时,就保留了原变量信息的93.984%。
利用SPSS得出的主成分系数为标准主成分系数,将其化为主成分系数如下:
将ComponentScoreCoefficientMatrix中的1-3列数字分别在SPSS中建立新的散列b1,b2,b3
输入
得到原始数据主成分系数为:
00.06690.2612
0.41860.3458-0.1213
0.3965-0.01120.3824
0.41860.3235-0.0187
0.3525-0.0669-0.2239
-0.17620.72500.3171
-0.28640.03350.6343
0.2644-0.50190.4664
故主成分的线性表达式为:
将各个主成分得分乘以相应的sqrt(λ)即特征根的二次方根可以将其还原为未经标准化的主成分得分.这里同样使用compute命令还原为主成分得分
pscore1=FAC1_1*SQRT(λ1),
所得pscore1,pscore2,pscore3数据分别为:
0.02-1.03-1.45
0.87-2.200.43
-1.620.250.82
-3.74-0.96-0.23
3.891.63-0.31
3.85-1.481.02
1.66-.270.98
-2.831.140.93
-0.500.801.02
0.710.310.29
-0.25-0.36-1.55
-0.70-0.20-1.21
-1.061.190.07
1.781.39-1.06
-2.07-0.220.25
综合评价:
重新进入Compute对话框,在Target