前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多元统计分析:主成分分析

多元统计分析:主成分分析

作者头像
yiyun
发布2022-04-01 13:54:32
1.4K0
发布2022-04-01 13:54:32
举报
文章被收录于专栏:yiyun 的专栏

简介

(Principal Component Analysis, PCA)

n 行 = 样本数 p 列 = 指标数 = 变量数 = 特征数

PCA 目标: 用 一组较少的不相关变量 代替 大量原相关变量,同时尽可能 保留原变量的信息,这些推导所得的变量称为 主成分 由于主成分有多个,有p 列,就有p个主成分,此时就还未达到降维效果,所以需要选择其中的一些留下作为最后的主成分 毫无疑问,希望保留尽可能多原变量信息,而方差大就意味着信息量大, 所以,我们可以按主成分对应的方差贡献率对主成分进行排序,并算出累积方差贡献率, 一般,当k 处 累积方差贡献率>80时,我们就可以选择前 k 个主成分

主成分之间彼此不相关 -> 协方差cov = 0 (相关系数 cor=0)-> 两两 正交:正交:当 p = 2 即二维图时,表现为线线垂直

步骤

假设 n * p ,即 n 样本,p 特征 有 p 特征,就有 p 主成分,但最后并不选择这么多,而是 按 各个主成分 方差递减,包含的信息量递减,只选取前 k 个 按 方差贡献率(方差占比)(某个主成分的方差占全部方差的比重)大小 先 对主成分 排序 排序后,算 累积方差贡献率(Cumulative Proportion),前k个位置达到 >80%,就选取前k个作为最后的主成分,用于之后的主成分表达式

R语言内置函数中有 2种(princomp()prcomp)实现PCA,因为 PCA 的实现一般有 2 种, PCA 的实现:

  1. 特征值(correlation和covariance)分解
  2. 奇异值(svd)分解

princomp() : cor参数:决定是 通过 cor 还是 cov 来计算

  1. 原始数据标准化(均值0,方差1)

R语言中 scale()

  1. 计算 样本协方差矩阵(标准化后协方差等于相关系数,所以,此处等同相关系数矩阵)
  2. 计算 协方差矩阵 的 特征值 和 特征向量
  3. 按 特征值 从大到小 排序
  4. 保留 最大 k 个特征向量
  5. 写出 主成分表达式,将数据转换到 特征向量 构建的新空间中
  6. 计算 主成分得分
  7. 根据得分数据,进一步统计分析

案例

电信业发展的主成分分析

代码语言:javascript
复制
library(openxlsx)

Case8 = read.xlsx("../Res/mvcase5.xlsx", "Case8", rowNames = T)
head(Case8)

image-20201212202559696

代码语言:javascript
复制
plot(hclust(dist(scale(Case8)))) # 系统聚类图

image-20201212202838582

代码语言:javascript
复制
source("../Res/msaR.r")

msa.pca(Case8, cor = T) # 主成分分析

image-20201212203006626

image-20201212203031083

image-20201212203049944

image-20201212203114987

运行后,发现可以提取两个主成分(Comp.1, Comp.2),这两个成分占全部的 96.14%,可以说是基本代表了全部指标的信息量

image-20201212204132221

第一个主成分(Comp.1) 主要由

x1

电信业务总量,

x4

国际互联网络用户,

x5

互联网用户使用时长,

x6

长途电话通话量,

x7

长途电话通话时长 决定, 这5个指标是总量指标,说明一个城市的电信业务规模和电信通信业务发展水平

image-20201212204313015

第二个主成分(Comp.2) 主要由

x2

每百人拥有固定电话数,

x3

每百人拥有移动电话数 决定, 这两个指标 是 平均量成分,反映了 电信行业中的电话人均普及情况

image-20201212204803598

降维:7个经济指标 用 2个综合指标 代替,而综合指标的信息没有损失多少 利用线性加权方法,以各主成分的贡献率为权数, 按公式 计算 各城市 电信业发展水平的 综合得分 并据此排名

score=0.738×PC1+0.223×PC20.738+0.223

举例:广州得分:

广州score广州=0.738×5.9068+0.223×−2.55970.738+0.223

由广州在PC1上得分,PC2上得分 根据公式得出综合得分 TODO: 综合得分应该是这么算的,计算了下,只有一点误差

image-20201212210334261

image-20201212205559351

Q&A

Q: 为什么要对数据做标准化(均值0,方差1)? A: 当不同特征量纲相差较大时,由于方差对于量纲,均值的敏感,将会导致量纲大的特征 对于 方差的影响很大,而我们认为这是不对的,不应当因为 公里数几千几万,相较于几元钱,而过分的影响最后方差 这也是相关系数的体现,相关性不应当受量纲影响

Q : 标准化后服从 正态分布(高斯分布)? A: 标准化(均值0,方差1) 后 服从标准正态分布(均值0,方差1)

Q: 标准化是不是有多种实现?看到一种:

均方根(x−xmean)/′均方根′

A : TODO: 标准化实现公式

Q: 标准化 和 归一化 异同? A: TODO: 标准化 和 归一化 异同?

Q: 如何对PCA结果主成分赋予新意义?即解释最后的主成分 A:根据PCA表达式的系数结合定性分析,主成分是原来变量的线性组合(原有变量 ---组合形成了--->最后的主成分) (PS:这点和因子分析正好相反,因子分析的 公共因子用于 解释/组合 原有变量)(数据背后隐藏的公共因子----形成解释了--->原有变量)

补充

standard deviation, $sdev:标准差 Proportion of Variance:方差的占比 Cumulative Proportion:累计贡献率

参考

感谢帮助!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 步骤
  • 案例
  • Q&A
  • 补充
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档