1 u5 h C4 m8 H/ K: ]; L c; e. b: M% z9 z% z1 F: S( L
4.将原始数据raw_data赋值给变量A。 8 l9 h3 f$ R. n5 _9 T( h+ Y5.获取数据矩阵的尺寸,其中a表示行数,b表示列数。8 v f# V( q8 R b9 D
6.创建一个与原始数据大小相同的零矩阵SA。/ |9 j/ H* y4 B9 q0 z3 _
7.使用循环将数据按列进行放置,并进行标准化(归一化),即将每列数据减去该列的均值,再除以该列的标准差。2 K, A; [& n- V( l1 I
+ A9 T4 O, p3 |% L$ |+ ?. e. [$ o3 }( s2 ~) x Y5 {
8.求解相关系数:* I n& T8 j$ q* ?* D. C
8 ~" Z/ x0 S4 {+ E l. y% I5 y- g4 T5 f 0 G! M+ }' q- k! q. f9 T9.使用corrcoef函数计算归一化后的数据矩阵SA的相关系数矩阵CM。! D/ y1 u1 B S w
p! V4 N r. m, L$ Z9 d0 z " i1 B& M; K9 X5 q: ]' ?/ {5 U10.计算特征值和特征向量: 7 ] z7 G: l& k% f * G8 f9 J: T. N4 s8 ^7 g$ e' S3 ] / y0 L' Z( v6 K, V7 `9 e p8 _11.使用eig函数对相关系数矩阵CM进行特征值分解,得到特征向量矩阵V和特征值矩阵D。 6 X) C& N" U% |4 \2 \+ I 5 j9 |0 S( ^' m5 E, M3 N2 K o0 S. W' S0 O. C
12.提取特征值和计算贡献率:# `! j' b1 R) l% ^/ b4 |# T' m. b
7 ?8 {+ ^' r" ?. Y) |# z1 J; d E. d) f5 F
13.创建一个零矩阵DS,其大小为b x 3,其中b为特征值矩阵D的列数。 , |1 ^& A- ~1 d& B14.将特征值矩阵D的对角线元素(特征值)赋值给DS的第一列。 5 G A& L; d- P w% h15.对DS按照第一列的值进行从大到小排序。9 g2 H |# t& [; U
16.计算特征值的贡献率,将特征值除以所有特征值的和,并将结果赋值给DS的第二列。. t, S% |4 H/ z* S8 `. M7 \3 ~ q
17.计算特征值的累计贡献率,对贡献率列进行累加,并将结果赋值给DS的第三列。 9 O7 c; z+ [6 {' X. n 9 | J* w6 Q9 m t 0 u# J# F. o6 S' |6 u18.确定保留主成分的数量:" ?# Y* j3 ~ j9 B+ F; G' c
6 y# f! Q8 d% G. O1 Z7 @% K 0 y, F( z( t/ I19.找到累计贡献率大于等于设定的保留率T的索引位置。 : C2 K d8 I C: `20.提取第一个满足条件的索引(最小的保留主成分数量)并赋值给变量Com_num。 ! H6 {- M( g2 y ( ^8 D/ d) q& x: G ' V3 o0 t( @7 M1 }% o& E21.提取主成分对应的特征向量:& E6 d2 b8 X% D
. ^* X' X# y9 n9 w
2 y9 H0 m$ p0 R22.将特征向量矩阵V的最后Com_num列反转(从最后一列开始取),得到主成分对应的特征向量矩阵PV。 1 e J, l+ ^1 t2 p + @4 O. [' c) X9 Z/ n1 ~9 ^5 o6 }0 M+ Y& I0 r# A' U# c
23.计算在主成分上的数据得分:; t# W; O" n$ F0 B1 N3 G3 L
, g# m' C% t/ r( |, P7 L0 Z) Z: }! I
0 {& {, r$ c& N0 K/ d
24.将归一化后的数据矩阵SA与主成分特征向量矩阵PV相乘,得到在主成分上的数据得分矩阵data。, L$ D1 y! V& s+ T
2 M5 Y' }' v3 ?3 W
该函数的作用是对原始数据进行主成分分析,并返回在主成分上的数据得分矩阵。主成分分析用于降维和数据探索,它将原始数据转换为一组新的线性维度,其中每个维度都是原始数据维度的线性组合。这些新的维度(主成分)根据特征值的贡献率进行排序,保留贡献率较高的主成分。 * C6 \. e% _/ f% A- }+ B' Y8 Y: M8 o9 S8 H& I* B, k8 Q
: b" Z# ^( X7 u T+ F$ \0 a0 b 9 ?. |, g5 z* E3 g3 r" b3 S ; Q S8 ]) R* U% V 1 u$ W- t0 E/ u3 E3 X