数学建模期末速成 主成分分析的基本步骤
设有nnn个研究对象,mmm个指标变量x1,x2,⋯ ,xmx_1,x_2,\cdots,x_mx1,x2,⋯,xm,第iii个对象关于第jjj个指标取值为aija_{ij}aij,构造数据矩阵A=(aij)n×mA=\left(\begin{array}{c}a_{ij}\end{array}\right)_{n\times m}A=(aij)n×m
(1)对原来的mmm个指标进行标准化,得到标准化的指标变量
yj=xj−μjsj,j=1,2,⋯ ,m ,式中:μj=1n∑i=1naij;si =1n−1∑i=1n(aij−μj)2y_{j}=\frac{x_{j}-\mu_{j}}{s_{j}},\quad j=1,2,\cdots,m\:,\\\text{式中}:\mu_{j}=\frac{1}{n}\sum_{i=1}^{n}a_{ij};s_{i}\:=\sqrt{\frac{1}{n-1}\sum_{i=1}^{n}\left(a_{ij}-\mu_{j}\right)^{2}}yj=sjxj−μj,j=1,2,⋯,m,式中:μj=n1i=1∑naij;si=n−11i=1∑n(aij−μj)2
对应地,得到标准化的数据矩阵
B=(bij)n×m,其中 bij=aij−μjsj,i=1,2,⋯ ,n,j=1 ,2,⋯ ,mB=(b_{ij})_{n\times m},\text{其中 }b_{ij}=\frac{a_{ij}-\mu_{j}}{s_{j}},i=1,2,\cdots,n,j=1\:,\\2,\cdots,mB=(bij)n×m,其中 bij=sjaij−μj,i=1,2,⋯,n,j=1,2,⋯,m
(2)根据标准化的数据矩阵BBB求出相关系数矩阵R=(rij)m×nR=(r_{ij})_{m\times n}R=(rij)m×n其中
bij=aij−μjsj,i=1 ,2 ,⋯ ,n ,j=1 ,2 ,⋯ ,mb_{ij}=\frac{a_{ij}-\mu_{j}}{s_{j}},i=1\:,2\:,\cdots,n\:,j=1\:,2\:,\cdots,mbij=sjaij−μj,i=1,2,⋯,n,j=1,2,⋯,m
(3) 计算相关系数矩阵 RRR 的特征值 λ1≥λ2≥⋯≥λm\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_mλ1≥λ2≥⋯≥λm,及对应的标准正交化特征向量 u1,u2,⋯ ,umu_1, u_2, \cdots, u_mu1,u2,⋯,um,其中 uj=[u1j,u2j,⋯ ,umj]Tu_j = [u_{1j}, u_{2j}, \cdots, u_{mj}]^Tuj=[u1j,u2j,⋯,umj]T,由特征向量组成 ppp 个新的指标变量
{F1=u11y1+u21y2+⋯+um1ym,F2=u12y1+u22y2+⋯+um2ym,⋮Fm=u1my1+u2my2+⋯+ummym, \begin{cases} F_1 = u_{11} y_1 + u_{21} y_2 + \cdots + u_{m1} y_m, \\ F_2 = u_{12} y_1 + u_{22} y_2 + \cdots + u_{m2} y_m, \\ \vdots \\ F_m = u_{1m} y_1 + u_{2m} y_2 + \cdots + u_{mm} y_m, \end{cases} ⎩ ⎨ ⎧F1=u11y1+u21y2+⋯+um1ym,F2=u12y1+u22y2+⋯+um2ym,⋮Fm=u1my1+u2my2+⋯+ummym,
式中:F1F_1F1 为第 1 主成分;F2F_2F2 为第 2 主成分;⋯\cdots⋯,FmF_mFm 为第 mmm 主成分。
(4) 计算主成分贡献率及累积贡献率,主成分 FjF_jFj 的贡献率为
wj=λj∑k=1mλk,j=1,2,⋯ ,m, w_j = \frac{\lambda_j}{\sum_{k=1}^m \lambda_k}, \quad j = 1, 2, \cdots, m, wj=∑k=1mλkλj,j=1,2,⋯,m,
前 iii 个主成分的累积贡献率为
∑k=1iλk∑k=1mλk \frac{\sum_{k=1}^i \lambda_k}{\sum_{k=1}^m \lambda_k} ∑k=1mλk∑k=1iλk
一般取累积贡献率达 85%以上的特征值 λ1,λ2,⋯ ,λk\lambda_1, \lambda_2, \cdots, \lambda_kλ1,λ2,⋯,λk 所对应的第 1, 第 2, ⋯\cdots⋯,第 k(k≤p)k (k \leq p)k(k≤p) 主成分
(5) 最后利用得到的主成分 F1,F2,⋯ ,FkF_1, F_2, \cdots, F_kF1,F2,⋯,Fk 分析问题,或者继续进行评价、回归、聚类等其他建模
[!warning] 注意
主成分分析的结果受量纲的影响,由于各变量的单位可能不同,结果可能不同这是主成分分析的最大问题。因此,在实际问题中,需要先对各变量进行无量纲化处理,然后用协方差矩阵或相关系数矩阵进行分析。
补充
无量纲化处理
在数学建模中,无量纲化处理(Non-dimensionalization)是通过引入特征尺度将包含单位的物理量转化为无量纲量的过程。其核心目的是简化模型、减少参数数量、揭示变量间的本质关系,并提高数值计算的稳定性。
如何做到无量纲化?
-
选择特征尺度
针对每个变量(如时间、长度、速度等),选择一个具有物理意义的参考值(如初始值、平衡状态值、特征长度等)。例如:- 时间尺度:若系统周期为 ( T ),可将时间 ( t ) 转化为 ( \tilde{t} = t/T )。
- 长度尺度:若物体长度为 ( L ),可将坐标 ( x ) 转化为 ( \tilde{x} = x/L )。
-
变量替换
将原变量替换为无量纲形式,例如:v~=vvc(vc 为特征速度)\tilde{v} = \frac{v}{v_c} \quad \text{(\( v_c \) 为特征速度)}v~=vcv(vc 为特征速度)3. 方程转化
将原方程中的变量和参数全部替换为无量纲量,整理后得到无量纲方程。
无量纲化的意义 -
简化模型结构
-
揭示尺度规律
-
数值计算稳定性
-
普适性分析
标准化
由于样本数据矩阵由多个指标组成,不同指标一般有不同的量纲,为消除量纲的影响,通常需要进行数据变换处理。常用的数据变换方法有:
- 中心化处理:先求出每个变量的样本平均值,再从原始数据中减去该变量的均值
bij=aij−μj ,i=1 ,⋯ ,n ;j=1 ,⋯ ,p ,式中:μj=∑i=1naijnb_{ij}=a_{ij}-\mu_{j}\:, \quad i=1\:,\cdots,n\:;j=1\:,\cdots,p\:,\\\text{式中}:\mu_j=\frac{\sum_{i=1}^na_{ij}}nbij=aij−μj,i=1,⋯,n;j=1,⋯,p,式中:μj=n∑i=1naij - 规格化处理:每一个变量的原始数据减去该变量中的最小值,再除以极差
bij=aij−min1≤i≤n( aij )max1≤i≤n( aij )−min1≤i≤n( aij),i=1 ,⋯ ,n ;j=1 ,⋯ ,p.b_{ij}=\frac{a_{ij}-\min_{1\leq i\leq n}\left(\:a_{ij}\:\right)}{\max_{1\leq i\leq n}\left(\:a_{ij}\:\right)-\min_{1\leq i\leq n}\left(\:a_{ij}\right)},\quad i=1\:,\cdots,n\:;j=1\:,\cdots,p.bij=max1≤i≤n(aij)−min1≤i≤n(aij)aij−min1≤i≤n(aij),i=1,⋯,n;j=1,⋯,p. - 标准化变换:先对每个变量进行中心化变换,然后用该变量的标准差进行标准化
bij=aij−μjsj,i=1 ,⋯ ,n ;j=1 ,⋯ ,p ,式中:μj=∑i=1naijn;sj=1n−1∑i=1n(aij−μj)2b_{ij}=\frac{a_{ij}-\mu_{j}}{s_{j}},\quad i=1\:,\cdots,n\:;j=1\:,\cdots,p\:,\\\text{式中}:\mu_{j}=\frac{\sum_{i=1}^{n}a_{ij}}{n};s_{j}=\sqrt{\frac{1}{n-1}\sum_{i=1}^{n}\left(a_{ij}-\mu_{j}\right)^{2}}bij=sjaij−μj,i=1,⋯,n;j=1,⋯,p,式中:μj=n∑i=1naij;sj=n−11i=1∑n(aij−μj)2
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)