数据科学 12 连续变量关系探索与变量压缩(概念)

  • 12.1 多元统计基础与变量约减的思路
  • 12.1.1 简单相关分析
  • 12.2 主成分分析
  • 12.2.1 主成分分析的思路
  • 12.2.2 三维变量之间的关系
  • 1、提取第一个主成分
  • 2、提取第二个主成分
  • 12.2.3、公式化表述
  • 12.2.4 基于相关系数矩阵的主成分分析
  • 12.2.5 主成分的解释
  • 12.2.6 主成分分析的三种运用场景
  • 12.3 因子分析
  • 12.3.1 因子分析的思路
  • 12.3.2 公式化表述
  • 1、正交因子模型
  • 2、估计方法
  • 3、主成分法
  • 4、最大方差旋转(varimax rotation)
  • 12.4 稀疏主成分分析
  • 12.5 变量聚类
  • 12.5.1 变量聚类思路
  • 12.5.2 对每组组内的代表性:
  • 12.5.3 借助稀疏主成分分析实现变量聚类
  • 12.5.4 为回归分析提供变量压缩


主要内容:

  • 多元统计基础与变量约减的思路
  • 主成分分析
  • 因子分析
  • 稀疏主成分分析
  • 变量聚类

12.1 多元统计基础与变量约减的思路

目标:

  • 使用散点图来查看两个连续变量间的关系。
  • 使用相关性统计来量化两个连续变量的相关性。
  • 描述一下错误使用相关系数的可能情形。
  • 使用相关(Correlations)任务获得皮尔森相关系数。

12.1.1 简单相关分析

三个连续变量-短信量、微信和Web登陆




连续变量预测模型R语言 连续变量分析_数据分析


  • 函数关系, 即当一个或多个变量的数值确定以后, 另一个变量的数值按照某种关系也随之被确定;
  • 相关关系, 即变量之间不存在确定的函数关系, 只是存在某种非确定性的联系, 这种依赖关系我们将用相关分析来研究。

简单相关分析是研究两个变量之间相关关系的方法。 按照变量性质的不同, 所采用的相关分析方法也不同。 对于连续变量, 通常使用Pearson相关系数来描述变量间的相关关系;对于有序变量, 则常使用Spearman相关系数

连续变量预测模型R语言 连续变量分析_主成分分析_02

两个变量之间的相关关系也可以通过散点图来进行直观描述:



连续变量预测模型R语言 连续变量分析_相关分析_03


12.2 主成分分析

12.2.1 主成分分析的思路

  • 主成分分析的目的是构造输入变量的少数线形组合,尽量能解释数据的变异性。这些线形组合被称为主成分,它们形成的降维数据可用于进一步分析。


连续变量预测模型R语言 连续变量分析_机器学习_04


  • 第一个主成分由图中比较长的直线代表,在这个方向上能够最多地解释数据的变异性,即方差最大;
  • 第二个主成分由图中比较短的直线代表,与第一个主成分正交,能够最多的解释数据中剩余的变异性;
  • 一般而言,每个主成分都需要与之前的主成分正交,并且能够最多的解释数据中剩余的变异性。

12.2.2 三维变量之间的关系

三维空间上的相关连续变量呈椭球状分布。只有这样的分布才可以做主成分分析。如果呈球形分布,这说明变量间没有相关关系,没有必要做主成分分析,也不能做变量的压缩。



连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_05


1、提取第一个主成分

首先找到这个空间椭球的最长轴,即数据变异最大的轴,第一特征根=1.94



连续变量预测模型R语言 连续变量分析_机器学习_06


2、提取第二个主成分

在所有与第一特征根垂直的方向上,找到第二个最长的轴;第一特征根=1.94,第二特征根=1.02



连续变量预测模型R语言 连续变量分析_数据分析_07


12.2.3、公式化表述

A、主成分建模
连续变量预测模型R语言 连续变量分析_主成分分析_08表示随机向量,它的方差-协方差矩阵为连续变量预测模型R语言 连续变量分析_数据分析_09

连续变量预测模型R语言 连续变量分析_机器学习_10

则Z的方差为:连续变量预测模型R语言 连续变量分析_数据分析_11
连续变量预测模型R语言 连续变量分析_主成分分析_12就是需要寻找的主成分,我们要求每个主成分两两之间是正交的。

  • 有多少个变量就会有多少个正交的主成分;
  • 主成分的变异(方差)之和等于原始变量的所有变异;
  • 前若干个主成分的变异(方差)解释了绝大多数的变异(方差);
  • 如果原始变量不相关,即没有协方差,则不需要做主成分。

B、特征值与特征向量
连续变量预测模型R语言 连续变量分析_相关分析_13为特征根方程,对其求解,得到特征根,按大小排序,连续变量预测模型R语言 连续变量分析_主成分分析_14连续变量预测模型R语言 连续变量分析_机器学习_15是分别属于他们的特征向量,特征向量线性无关。这样的变换在线性代数中称为线性变化。
连续变量预测模型R语言 连续变量分析_数据分析_09进行上述正交分解,便得到这样的连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_17这样的特征根-特征向量对。
则第i主成分为:
连续变量预测模型R语言 连续变量分析_数据分析_18
主成分的方差-协方差为:
连续变量预测模型R语言 连续变量分析_数据分析_19
C、主成分的个数选取
连续变量预测模型R语言 连续变量分析_主成分分析_20表示原始变量的方差序列,它们之和等于主成分之和。他们之间的区别在于主成分是从大到小排序的。
连续变量预测模型R语言 连续变量分析_机器学习_21
每个主成分解释的变异为:连续变量预测模型R语言 连续变量分析_主成分分析_22
原始变量单位不一致情况下,原始变量需要进行学生标准化,则所有原始变量的方差为1。

主成分个数的选取原则:

  • 单个主成分解释的变异不应该小于1,比如选取3个主成分,第3个主成分解释的变异相当于一个原始变量的变异;
  • 选取主成分累积的解释变异达到80%-90%。

12.2.4 基于相关系数矩阵的主成分分析

因为主成分是通过最大化线性组合的方差来得到的,所以它对变量的测量尺度非常敏感。



连续变量预测模型R语言 连续变量分析_机器学习_23


在实际应用中,通常首先将各输入变量进行标准化,使每个变量的均值为0,方差为1,这等价于 使用相关系数矩阵R替代协方差矩阵连续变量预测模型R语言 连续变量分析_数据分析_09来进行主成分分析。

12.2.5 主成分的解释

我们可以从两个方面来解释所得的第i个主成分:

  • 考察第i个主成分对应的系数(即连续变量预测模型R语言 连续变量分析_数据分析_25),根据系数绝对值较大的输入变量来解释第i个主成分。值得注意的是,系数的正负本身没有意义 ,这是因为连续变量预测模型R语言 连续变量分析_数据分析_26R的任意特征向量e取负之后仍然是特征向量。但是 ,系数之间的正负对比是有意义的。
  • 计算第i个主成分与各输入变量的相关系数,根据那些对应相关系数的绝对值较大的输入变量来解释第i个主成分。

12.2.6 主成分分析的三种运用场景

1、做一个综合打分:这种情况在日常中经常遇到,比如高考成绩的加总、员工绩效的总和排名。这类情况要求只出一个综合打分,因此主成分分析比较适合。相对于讲单项成绩简单加总的方法,主成分分析会赋予区分度高的单项成绩以更高的权重,分值更合理。不过当主成分分析不支持取一个主成分时,就不能使用该方法了。

2、对数据进行描述:描述产品情况,比如著名的波士顿矩阵,子公司业务发展状况,区域投资潜力等,需要将多变量压缩到少数几个主成分进行描述,如果压缩到两个主成分是最理想的。这类分析一般做主成分分析是不充分的,做到因子分析更好。

3、为聚类或回归等分析提供变量压缩:消除数据分析中的共线性问题,消除共线性常用的有三种方法,分别是: 1)同类变量中保留一个最有代表性的; 2)保留主成分或因子; 3)从业务理解上进行变量修改。这主成分是三种方法的基础。
总结:
仅提取变量的主要信息,无法完成维度分析的功能。像“CITIES_10”这样变量本身就具有很好的分类表现的数据是很少见的。完成变量聚类的主要方法下面介绍的因子分析。

主要用途: 1、对个体的情况或表现进行打分; 2、一种简单省力的综合信息的手段,降低变量之间的关系,作为预测类模型的输入变量。

12.3 因子分析

12.3.1 因子分析的思路

继续主成分分析的思路,就象之前例子中呈现的那样,一般得到的主成分中,第一个主成分是综合指标,第二个主成分是调和指标。下图是以每个变量在这两个主成分上的权重作的散点图。

连续变量预测模型R语言 连续变量分析_主成分分析_27

如果可以将主成分的坐标轴进行旋转,使得一些变量的权重的绝对值在一个主成分上达到最大,而在其他主成分上绝对值最小,这样就达到了变量分类的目的。变量旋转分为正交和非正交两种,一般使用前者。

连续变量预测模型R语言 连续变量分析_数据分析_28

12.3.2 公式化表述

1、正交因子模型
  • 假设连续变量预测模型R语言 连续变量分析_机器学习_29是一个p维随机向量。
  • X的均值向量为连续变量预测模型R语言 连续变量分析_主成分分析_30
  • X的协方差矩阵为连续变量预测模型R语言 连续变量分析_数据分析_26,其对角线上的值连续变量预测模型R语言 连续变量分析_主成分分析_32给出了连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_33的方差连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_34
  • 连续变量预测模型R语言 连续变量分析_数据分析_35表示q个公共因子。
  • 连续变量预测模型R语言 连续变量分析_数据分析_36表示特殊因子 。
    连续变量预测模型R语言 连续变量分析_相关分析_37
    写成矩阵的形式是:连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_38,其中:
  • 连续变量预测模型R语言 连续变量分析_数据分析_39是q维随机向量;
  • 连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_40是p维随机向量;
  • L称为因子载荷矩阵,其第k行第i列的值连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_41表示连续变量预测模型R语言 连续变量分析_相关分析_42在因子连续变量预测模型R语言 连续变量分析_相关分析_43上的载荷。
2、估计方法

因子载荷矩阵的估计是因子分析的主要问题之一。令连续变量预测模型R语言 连续变量分析_数据分析_44表示对角元素 为连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_45的p维对角矩阵。将前面的结论1和结论2写成矩阵形式可以得出:连续变量预测模型R语言 连续变量分析_数据分析_46

  • 连续变量预测模型R语言 连续变量分析_相关分析_47连续变量预测模型R语言 连续变量分析_数据分析_26中能被公共因子解释的部分;
  • 连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_49连续变量预测模型R语言 连续变量分析_数据分析_26中不能被公共因子解释而归结于特殊因子的部分。
  • 注意,尽管开始连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_49被定义为一个对角矩阵,但实际上却不一定能够找到一个对角矩阵正好满足上式。
3、主成分法
  • 连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_52表示连续变量预测模型R语言 连续变量分析_数据分析_26的特征值,连续变量预测模型R语言 连续变量分析_数据分析_54表示对应的特征向量。统计理论证明连续变量预测模型R语言 连续变量分析_数据分析_26可以拆分为连续变量预测模型R语言 连续变量分析_机器学习_56
  • 对任意连续变量预测模型R语言 连续变量分析_主成分分析_57,令因子载荷矩阵连续变量预测模型R语言 连续变量分析_主成分分析_58的第i列为连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_59,那么连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_60
  • 对任意连续变量预测模型R语言 连续变量分析_机器学习_61,令连续变量预测模型R语言 连续变量分析_机器学习_62,令连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_63为对角元素为连续变量预测模型R语言 连续变量分析_数据分析_64的p维对角矩阵。
  • 连续变量预测模型R语言 连续变量分析_机器学习_65连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_63就是L连续变量预测模型R语言 连续变量分析_数据分析_67的估计值。
4、最大方差旋转(varimax rotation)

应用最广泛的因子旋转方法:

  • 它是一种正交旋转;
  • 目的是使载荷平方的方差最大化,即最大化连续变量预测模型R语言 连续变量分析_相关分析_68

总结
1、因子分析是主成分方法的拓展,可以很好地满足维度分析的需求;
2、对于没有业务经验的数据分析人员来讲,是通过观察每个原始变量在因子上的权重绝对值来给因子取名称的。而对于业务知识丰富的数据分析人员,已经对变量的分类有一个预判,并通过进行不同的变量转换(标准化)方式和旋转方式使得预判别为同一组的原始变量在共同的因子上权重绝对值最大化。所以因子分析的要点在于选择变量转换方式。
3、因子分析作为维度分析的手段,是构造合理的聚类模型和稳健的分类模型的必然步骤。在这方面,主成分分析、脊回归、LASSO算法回归只是在建模时间紧张和缺乏业务经验情况下的替代办法。

12.4 稀疏主成分分析

目标函数
连续变量预测模型R语言 连续变量分析_主成分分析_69
subject to 连续变量预测模型R语言 连续变量分析_相关分析_70 for all 连续变量预测模型R语言 连续变量分析_数据分析_71
X-原始数据,NP
U-主成分,N
R
V-权重矩阵,P*R
连续变量预测模型R语言 连续变量分析_相关分析_72是惩罚系数,取值越小,则越接近普通的主成分分析 ;取值越大,权重矩阵中的0
值越多。

12.5 变量聚类

12.5.1 变量聚类思路



连续变量预测模型R语言 连续变量分析_相关分析_73


12.5.2 对每组组内的代表性:



连续变量预测模型R语言 连续变量分析_机器学习_74

连续变量预测模型R语言 连续变量分析_连续变量预测模型R语言_75


12.5.3 借助稀疏主成分分析实现变量聚类

步骤一:进行SparsePCA计算,选择合适的惩罚项alpha,当恰巧每个原始变量只在一个主成分上有权重时,停止循环



连续变量预测模型R语言 连续变量分析_相关分析_76


步骤二、 根据上一步得到的惩罚项的取值,估计SparsePCA,并得到稀疏主成分得分



连续变量预测模型R语言 连续变量分析_相关分析_77


步骤三:每个主成分中,选出原始变量的1-R方比值最小的。



连续变量预测模型R语言 连续变量分析_机器学习_78


步骤四:在原始数据中,选取被筛选出的变量。



连续变量预测模型R语言 连续变量分析_数据分析_79


12.5.4 为回归分析提供变量压缩

计划使用” CREDITCARD_EXP”数据,通过线形回归构造客户价值预测模型,但是发现解释变量之间具有强相关性。使用这样的数据进行构造的预测模型稳健型差,需要事先进行处理。这里考虑使用主成分分析的方法。



连续变量预测模型R语言 连续变量分析_机器学习_80