第16章 主成分分析
习题16.1
对以下样本数据进行主成分分析:
解答:
解答思路:
- 给出主成分分析算法
- 自编程基于
numpy库实现主成分分析算法
解答步骤:
第1步:主成分分析算法
主成分分析方法主要有两种,可以通过相关矩阵的特征值分解或样本矩阵的奇异值分解进行。
- 相关矩阵的特征值分解算法
根据书中第16.2.2节的相关矩阵的特征值分解算法具体步骤:
(1)对观测数据按照如下公式进行规范化处理,得到规范化数据矩阵,仍以
表示 其中
(2)依据规范化数据矩阵,计算样本相关矩阵
其中
(3)求样本相关矩阵
的 个特征值和对应的 个单位特征向量。 求解 的特征方程 得
的 个特征值 求方差贡献度
达到预定值的主成分个数 。
求前个特征值对应的单位特征向量 (4)求
个样本主成分
以个单位特征向量为系数进行线性变换,求出 个样本主成分 (5)计算
个主成分 与原变量 的相关系数 ,以及 个主成分对原变量 的贡献率 。 (6)计算
个样本的 个主成分值
将规范化样本数据带入个主成分式,得到 个样本的主成分值。第 个样本 的第 个主成分值是
根据书中第16章的定义16.2给出了方差贡献率:
定义16.2 第
主成分 的方差贡献率定义为 的方差与所有方差之和的比,记作
个主成分 的累计方差贡献率定义为 个方差之和与所有方差之和的比
- 样本矩阵的奇异值分解算法
根据书中第16章的算法16.1主成分分析算法
算法16.1(主成分分析算法)
输入:样本矩阵 ,其每一行元素的均值为零;
输出:样本主成分矩阵 。
参数:主成分个数
(1)构造新的矩阵
每一列的均值为零。
(2)对矩阵进行截断奇异值分解,得到 有
个奇异值、奇异向量。矩阵 的前 列构成 个样本主成分。
(3)求样本主成分矩阵
第2步:自编程基于numpy库实现主成分分析算法
import numpy as np
def pca_svd(X, k):
"""
样本矩阵的奇异值分解的主成分分析算法
:param X: 样本矩阵X
:param k: 主成分个数k
:return: 特征向量V,样本主成分矩阵Y
"""
n_samples = X.shape[1]
# 构造新的n×m矩阵
T = X.T / np.sqrt(n_samples - 1)
# 对矩阵T进行截断奇异值分解
U, S, V = np.linalg.svd(T)
V = V[:, :k]
# 求k×n的样本主成分矩阵
return V, np.dot(V.T, X)X = np.array([[2, 3, 3, 4, 5, 7],
[2, 4, 5, 5, 6, 8]])
X = X.astype("float64")
# 规范化变量
avg = np.average(X, axis=1)
var = np.var(X, axis=1)
for i in range(X.shape[0]):
X[i] = (X[i, :] - avg[i]) / np.sqrt(var[i])
# 设置精度为3
np.set_printoptions(precision=3, suppress=True)
V, vnk = pca_svd(X, 2)
print("正交矩阵V:")
print(V)
print("样本主成分矩阵Y:")
print(vnk)正交矩阵V:
[[ 0.707 0.707]
[ 0.707 -0.707]]
样本主成分矩阵Y:
[[-2.028 -0.82 -0.433 0. 0.82 2.461]
[ 0.296 -0.046 -0.433 0. 0.046 0.137]]
习题16.2
证明样本协方差矩阵
解答:
解答思路:
- 给出总体协方差矩阵
- 给出样本协方差矩阵
- 给出无偏估计的定义
- 证明样本协方差矩阵
是总体协方差矩阵 的无偏估计
解答步骤:
第1步:总体协方差矩阵
根据书中第16章的定理16.1:
定理16.1 设
是 维随机变量, 是 的协方差矩阵, 的特征值分别是 ,特征值对应的单位特征向量分别是 ,则 的第 个主成分是
的第 主成分的方差是 即协方差矩阵
的第 个特征值。
根据书中第16章的本章概要的总体主成分的性质:
主成分
的协方差矩阵是对角矩阵
第2步:样本协方差矩阵
根据书中第16.2.1的样本协方差矩阵定义:
给定样本矩阵
,可以估计样本均值,以及样本协方差。样本均值向量 为 样本协方差矩阵
为
第3步:无偏估计的定义
根据《实用多元统计分析》(方开泰,1989年9月第一版)中第88~89页的无偏性:
如果参数
的某个估计 满足 ,则称 是无偏的。······引理3.4还指出:
独立同分布于 ,于是
不是 的无偏估计,但可修正一下使之为无偏估计。令 则
是 的无偏估计。在实用中普遍采用 来估计 。
无偏估计是用样本统计量来估计总体参数的一种无偏推断。估计量的期望等于被估计参数的真实值,则称此估计量为被估计参数的无偏估计,即具有无偏性。表示在多次重复下,它们的平均数接近所估计的参数真值。
第4步:证明样本协方差矩阵
由样本协方差矩阵
令:
根据无偏估计的定义,证明样本协方差矩阵
即证明:
参考《应用多元统计分析 第五版》(王学民,2017年8月第5版)书中第51页的无偏性一节的推导
依(2.2.14)式
于是
因此,样本协方差矩阵
习题16.3
设
其中,
解答:
解答思路:
- 给出弗罗贝尼乌斯范数的定义
- 给出矩阵的最优近似
- 证明主成分是该最优化问题的最优解,该最优化问题的最优解是
的主成分
解答步骤:
第1步:弗罗贝尼乌斯范数
根据书中第15章的定义15.4的弗罗贝尼乌斯范数:
定义15.4(弗罗贝尼乌斯范数) 设矩阵
, ,定义矩阵 的弗罗贝尼乌斯范数为
第2步:矩阵的最优近似
根据书中第15.3.2节的定理15.3:
定理15.3 设矩阵
,矩阵的秩 ,有奇异值分解 ,并设 为 中所有秩不超过 的矩阵的集合, ,若秩为 的矩阵 满足 则
特别地,若
,其中 则
第3步:证明命题
根据样本矩阵的奇异值分解算法(主成分分析算法),针对
对优化问题的目标函数进行如下变换:
令
则原最优化问题等价于
对
结合第2步,可知变换后的最优化问题和定理15.3类似,形如:
可找到
参考文献
【1】方开泰. 实用多元统计分析[M]. 1989-09:88-89
【2】王学民. 应用多元统计分析 第五版[M]. 2017-08:51
