第三十六课

因子分析

因子分析(Factor

Analysis)是主成分分析的推广,它也是从研究相关矩阵内部的依赖关系出发,把一些具有错综复杂关系的变量归结为少数几个综合因子的一种多变量统计分析方法。具体地说,就是要找出某个问题中可直接测量的、具有一定相关性的诸指标,如何受少数几个在专业中有意义,又不可直接测量到,且相对独立的因子支配的规律,从而可用诸指标的测定来间接确定诸因子的状态。

一、

何为因子分析

因子分析的目的是用有限个不可观察的潜在变量来解释原变量间的相关性或协方差关系。在这里我们把不可观察的潜在变量称为公共因子(common

factor)。在研究样品时,每个样品需要检测很多指标,假设测得 个指标,但是这 个指标可能受到 ( <

)个共同因素的影响,再加上其他对这些指标有影响的因素。写成数学的形式就是:

(36.1)

利用矩阵记号有:

(36.2)

各个指标变量都受到 的影响,因此 称为公共因子, 称为因子载荷矩阵, 是单变量 所特有的因子,称为 的特殊因子(unique

factor)。设 , ,…, 分别是均值为0,方差为1的随机变量,即 ;特殊因子 , ,…, 分别是均值为0,方差为 , ,…,

的随机变量,即 ;各特殊因子之间及特殊因子与公共因子之间都是相互独立的,即 及 。 是第 个变量在第

个公共因子上的负荷,从投影的角度看, 就是 在坐标轴 上的投影。

主成分分析的目标是降维,而因子分析的目标是找出公共因素及特有的因素,即公共因子与特殊因子。在主成分分析中,残差通常是彼此相关的。在公因子分析中,特殊因子起到残差的作用,但被定义为彼此不相关且和公因子也不相关。而且每个公因子假定至少对两个变量有贡献,否则它将是一个特殊因子。在开始提取公因子时,为了简便还假定公因子彼此不相关且具有单位方差。在这种情况下,向量

的协方差矩阵Σ可以表示为:

(36.3)

这里D=diag( ),diag表示对角矩阵。如果假定已将 标准化,也就是说 的每一个分量

的均值都为0,方差都是1,即 ,那么:

(36.4)

记 ,则有:

(36.5)

反映了公共因子f对 的影响,称为公共因子f对 的“贡献”。 实际反映了变量

对公共因子f的依赖程度。

另一方面,还可以考虑指定的一个公共因子 对各个变量 的影响。实际上, 对各个变量 的影响可由 中第

列的元素来描述,那么:

(36.6)

称为公共因子 对 的“贡献”。显然 越大, 对 的影响就越大, 成为衡量因子重要性的一个尺度。实际上:

(36.7)

那么,矩阵 的统计意义就非常清楚:

l 是 和 的相关系数

l 是 对公共因子 的依赖程度

l 是公共因子 对 的各个分量总的影响

下面我们来看怎样求解因子载荷矩阵 。

二、

因子载荷矩阵的求解

如果已知 协方差矩阵 和 ,可以很容易地求出 。根据式(36.3)有:

(36.8)

记 ,则 是非负定矩阵。若记矩阵 的p个特征值 ≥ ≥…≥

>  = … = =

0,且m个非零特征值所对应的特征向量分别为 , ,…, ,则 的谱分解式为:

(36.9)

只要令:

(36.10)

就可以求出因子载荷矩阵 。

但在实际问题中,我们并不知道 、 ,即不知道 ,已知的只是 个样品,每个样品测得 个指标,共有

个数据,样品数据见表36.1。为了建立公因子模型,首先要估计因子载荷 和特殊因子方差

。常用的参数估计方法有以下三种:主成分法、主因子解法和极大似然法。

1.

主成分法

主成分法求因子载荷矩阵 的具体求法如下:首先从资料矩阵出发求出样品的协方差矩阵,记之为 ,其特征值为 ,相应的单位正交特征向量为

,当最后 个特征值较小时,则对 进行谱分解可以近似为:

(36.11)

其中, ≥ ≥…≥ >0是协方差矩阵 相应的前 个较大特征值。先取 ,然后看

是否接近对角阵。如果接近对角阵,说明公共因子只要取一个就行了,所有指标主要受到这一个公共因子的影响;如果 不是近似对角阵,就取

,然后看 是否接近对角阵,如果接近对角阵,就取两个公共因子;否则,再取

,…,直到满足“要求”为止。这里的“要求”要视具体情况而定,一般而言,就像主成分分析一样,直接取前

个特征值和特征向量,使得它们的特征值之和占全部特征值之和的85%以上即可。此时,特殊因子方差 。

2.

主因子解法

主因子解法是主成分法的一种修正,它是从资料矩阵出发求出样品的相关矩阵 ,设 ,则 。如果我们已知特殊因子方差的初始估计

,也就是已知了先验公因子方差的估计为 ,则约相关阵 为:

(36.12)

计算 的特征值和特征向量,取前 个正特征值 及相应特征向量为 ,则有近似分解式:

(36.13)

其中, ,令 ,则 和 为因子模型的一个解,这个解就称为主因子解。

上面的计算是我们假设已知特殊因子方差的初始估计 ,那么,特殊因子方差的初始估计值如何得到呢?由于在实际中特殊因子方差

(或公因子方差 )是未知的。以上得到的解是近似解。为了得到近似程度更好的解,常常采用迭代主因子法。即利用上面得到的

作为特殊方差的初始估计,重复上述步骤,直到解稳定为止。

公因子方差(或称变量的共同度)常用的初始估计有下面三种方法:

l 取为第 个变量与其他所有变量的多重相关系数的平方(或者取 ,其中 是相关矩阵 的可逆矩阵

的对角元素,则 )

l 取为第 个变量与其他所有变量相关系数绝对值的最大值

l 取 =1,它等价于主成分解

3.

极大似然法

假定公共因子f和特殊因子 服从正态分布,那么我们可得到因子载荷阵和特殊方差的极大似然估计。设 维的 个观察向量

为来自正态总体 的随机样本,则样本似然函数为 和 的函数 。设 ,取 ,对于一组确定的随机样本, 已经变成了确定已知的值,则似然函数

可以转换为 和 的函数 。接下来,就可以求 和 取什么值,使函数 能达到最大。为了保证得到唯一解,可以附加唯一性条件

对角阵,再用迭代方法可求得极大似然估计的 和 的值。

三、

因子旋转

因子模型被估计后,还必须对得到的公因子

进行解释。进行解释通常意味着对每个公共因子给出一种意义明确的名称,它用来反映在预测每个可观察变量中这个公因子的重要性,这个公因子的重要程度就是在因子模型矩阵中相应于这个因子的系数,显然这个因子的系数绝对值越大越重要,而接近0则表示对可观察变量没有什么影响。因子解释是一种主观的方法,有时侯,通过旋转公因子可以减少这种主观性,也就是要使用非奇异的线性变换。

设 维可观察变量 满足因子模型 。设 是任一正交阵,则因子模型可改写为:

(36.14)

其中, , 。

根据我们前面假定:每个公因子的均值为0,即 ,每个公因子的方差为1,即

,各特殊因子之间及特殊因子与公共因子之间都是相互独立的,即 及 。可以证明:

(36.15)

(36.16)

(36.17)

(36.18)

因此, 。这说明,若 和 是一个因子解,任给正交阵 , 和 也是因子解。由于正交阵

是任给的,因此,因子解不是唯一的。在实际工作中,为了使载荷矩阵有更好的实际意义,在求出因子载荷矩阵 后,再右乘一个正交阵

,这样就变换了因子载荷矩阵,这种方法称为因子轴的正交旋转。

我们知道,一个所有系数接近0或±1的旋转模型矩阵比系数多数为0与±1之间的模型容易解释。因此,大多数旋转方法都是试图最优化模型矩阵的函数。在初始因子提取后,这些公因子是互不相关的。如果这些因子用正交变换(orthogonal

transformation)进行旋转,旋转后的因子也是不相关的。如果因子用斜交变换(oblique

transformation)进行旋转,则旋转后的因子变为相关的。但斜交旋转常常产生比正交旋转更有用的模型。

旋转一组因子并不能改变这些因子的统计解释能力。如果两种旋转模型导出不同的解释,这两种解释不能认为是矛盾的。倒不如说,是看待相同事物的两种不同方法。从统计观点看,不能说一些旋转比另一些旋转好。在统计意义上,所有旋转都是一样的。因此,在不同的旋转之间进行选择必须根据非统计观点。在多数应用中,我们选择最容易解释的旋转模型。

四、

应注意的几个问题

l 因子分析是主成分分析的推广,它也是一种降维技术,其目的是用有限个不可观测的隐变量来解释原始变量之间的相关关系。

l 因子模型在形式上与线性回归模型很相似,但两者有着本质的区别:回归模型中的自变量是可观测到的,而因子模型中的各公因子是不可观测的隐变量。而且,两个模型的参数意义很不相同。

l 因子载荷矩阵不是唯一的,利用这一点通过因子的旋转,可以使得旋转后的因子有更鲜明的实际意义。

l 因子载荷矩阵的元素及一些元素组合有很明确的统计意义。

l 因子模型中常用的参数估计方法主要有:主成分法,主因子法和极大似然法。

l 在实际应用中,常从相关矩阵R出发进行因子模型分析。

常用的因子得分估计方法有:巴特莱特因子得分和汤姆森因子得分两种方法。

五、

Factor因子分析过程

因子分析用少数起根本作用、相互独立、易于解释通常又是不可观察的因子来概括和描述数据,表达一组相互关联的变量。通常情况下,这些相关因素并不能直观观测,这类分析通常需用因子分析完成。

factor过程一般由下列语句控制:

proc factor  data=数据集

;

priors  公因子方差 ;

var

变量表

;

partial  变量表 ;

freq 变量 ;

weight 变量 ;

by 变量 ;

run ;

1.

proc

factor语句的

(1) 有关输出数据集选项

l out=

输出数据集——创建一个输出数据集,包括输入数据集中的全部数据和因子得分估计。

l outstat=

输出数据集——用于存储因子分析的结果。这个结果中的部分内容可作为进一步因子分析的读入数据集。

(2) 有关因子提取和公因子方差选项

l method=

因子选择方法——包括principal(主成分法),prinit(迭代主因子法),usl(没有加权的最小二乘因子法),alpha(

因子法或称harris法),ml(极大似然法),image(映象协方差阵的主成分法),pattern(从type=选项的数据集中读入因子模型)、score(从type=选项的数据集中读入得分系数)。常用方法为principal(主成分法)、ml(极大似然法)和prinit(迭代主因子法)。

l heywood——公因子方差大于1时令其为1,并允许迭代继续执行下去。因为公因子方差是相关系数的平方,我们要求它总是在0和1之间。这是公因子模型的数学性质决定的。尽管如此,但在最终的公因子方差的迭代估计时有可能超过1。如果公因子方差等于1,这种状况称为Heywood状况,如果公因子方差大于1,这种状况称为超-Heywood状况。在超-Heywood状况时,因子解是无效的。

l priors

=公因子方差的计算方法名——规定计算先验公因子方差估计的方法,即给各变量的公因子方差 赋初值,包括one(等于1.0),max

(最大绝对相关系数 ),smc(多元相关系数的平方),asmc

(与多元相关系数的平方成比例,但要适当调整使它们的和等于最大绝对相关),input(从data=指定的数据集中,按type=指定类型读入第一个观察中的先验公因子方差估计),random(0与1之间的随机数)。

(3) 有关规定因子个数及收敛准则的选项

l nfactors=n——要求保留n个公因子,否则只保留特征值大于1的那些公因子。

l mineigen=p——规定被保留因子的最小特征值。

l proportion=p——使用先验公因子方差估计,对被保留的因子规定所占公共方差比例为这个p值。

l converge=p——当公因子方差的最大改变小于p时停止迭代。缺省值=0.001。

l maxiter=n——规定迭代的最大数。缺省值为30。

(4) 有关旋转方法的选项

l rotate=因子转轴方式名——给出旋转方法。包括none,varimax,quartimax,equamax,orthomax,hk,promax,procrustes。常用的有varimax(正交的最大方差转轴法)、orthomax(由gamma=指定权数的正交方差最大转轴法)和promax(在正交最大方差转轴的基础上进行斜交旋转)。

l norm=kaiser | raw | weight | cov |

none——为了对因子模型进行旋转,规定模型矩阵中行的正规化方法。例如,norm=kaiser表示使用Kaiser的正规化方法。norm=weight表示使用Cureton-Mulaik方法进行加权。norm=cov表示模型矩阵的这些行被重新标度为表示协方差而不是相关系数。norm=raw或none表示不进行正规化。

l gamma=p——规定正交方差最大旋转的权数。

l prerotate=因子转轴方式名——规定预先旋转的方法。除了promax和procrustes的旋转方法,任何其他的旋转方法都可使用。

(5) 有关控制打印输出的选项

l simple——打印输出包括简单统计数。

l corr——打印输出相关阵和偏相关阵。

l score——打印因子得分模型中的系数。

l scree——打印特征值的屏幕图。

l ev——打印输出特征向量。

l residuals——打印残差相关阵和有关的偏相关阵。

l nplot=n——规定被作图的因子个数。

l plot——在旋转之后画因子模型图。

l preplot——在旋转之前画因子模型图。

l msa——打印被所有其余变量控制的每对变量间的偏相关,并抽样适当的Kaiser度量。

l reorder——在打印输出时让各种因子矩阵的这些行重新排序。在第一个因子上具有最大绝对载荷的变量首先被输出,然后按最大载荷到最小输出,紧接着在第二个因子上输出具有最大绝对载荷的变量等等。

2.

priors语句

为var变量设定公因子方差,值在0.0和1.0之间。其值的设定应与var语句的变量相对应。例如:proc

factor;priors 0.7 0.8 0.9; var

x y z;

其他语句的使用略。

六、

Factor score因子得分过程

无论是初始因子模型还是旋转后的因子模型,都是将指标表示为公因子的线性组合。在因子分析中,还可以将公因子表示为指标的线性组合,这样就可以从指标的观测值估计各个公因子的值,这种值叫因子得分。它对样品的分类有实际意义。因子得分可由proc

score过程完成。

score过程一般由下列语句控制:

proc score data=数据集

;

var 变量 ;

run ;

proc

score语句选项包括out=输出数据集,存储因子得分结果等。将factor和score两个过程书写在同一个程序中,可以提高分析的效率。

七、

实例分析

例36.1 表36.1给出的数据是在洛杉矶十二个标准大都市居民统计地区中进行人口调查获得的。它有五个社会经济变量,分别是人口总数(pop)

、居民的教育程度或中等教育的年数(school )、雇佣人总数(employ

)、各种服务行业的人数(services )和中等的房价(house ),试作因子分析。

表36.1 五个社会因素调查数据

编号

pop

school

employ

services

house

1

5700

12.8

2500

270

25000

2

1000

10.9

600

10

10000

3

3400

8.8

1000

10

9000

4

3800

13.6

1700

140

25000

5

4000

12.8

1600

140

25000

6

8200

8.3

2600

60

12000

7

1200

11.4

400

10

16000

8

9100

11.5

3300

60

14000

9

9900

12.5

3400

180

18000

10

9600

13.7

3600

390

25000

11

9600

9.6

3300

80

12000

12

9400

11.4

4000

100

13000

1.

建立数据文件

程序如下:

data socecon;

input pop school employ

services house;

title 'FIVE SOCIO-ECONOMIC

VARIABLES';

cards;

5700 12.8 2500 270 25000

1000 10.9 600 10 10000

… … … … …

9400 11.4 4000 100 13000

;

run;

程序运行后,生成一个scoecon数据集。

2.

调用因子分析factor过程

菜单操作方法,在SAS系统的主菜上,选择Globals/SAS/Assist 进入Assist的主菜单,再选择data

analysis/multivar/factor analysis(因子分析)。编程方法如下:

proc factor data=socecon method=prin priors=one simple corr

score;

run;

proc factor data=socecon method=prin priors=smc msa scree

residual preplot

rotate=promax reorder plot outstat=fact_all ;

run;

proc factor data=socecon method=ml heywood nfacotors=1;

run;

proc factor data=socecon method=ml heywood nfactors=2;

run;

proc factor data=socecon method=ml heywood nfactors=3;

run;

程序说明:共调用了5个factor因子分析过程。第1个过程为主成分因子分析,第2个过程为主因子分析,第3个过程为提取一个因子的最大似然分析,第4个过程为提取二个因子的最大似然分析,第5个过程为提取三个因子的最大似然分析。

第1个factor因子分析过程,由于选项method=prin

和priors=one,提取因子的方法采用主成分分析,先验公因子方差估计被规定为1。选项simple和

corr要求输出描述统计量和相关阵。选项score要求输出因子得分系数。

第2个factor因子分析过程,由于不是priors=one选项,因此,提取因子的方法采用主因子分析,选项method=prin不起作用。选项priors=smc表示先验公因子方差估计被规定为每个变量与其他变量的多重相关系数的平方。选项msa表示控制所有其余变量的偏相关。选项scree表示输出所有特征值按从大到小排列的斜坡图,用于选择因子个数。选项residual输出残差相关阵和有关的偏相关阵,得到特殊因子方差的剩余相关。选项rotate=promax规定因子模型预先按正交最大方差的旋转,再在正交最大方差转轴的基础上进行斜交的promax旋转。选项preplot表示绘制因子模型旋转前的散点图。选项plot表示绘制因子模型旋转后的散点图。选项reorder表示按因子上具有的载荷大小排列。选项outstat=fact_all表示将因子分析的各种结果输出到fact_all数据集中。

其他3个最大似然因子分析过程的说明,我们在这里省略。第1和第2个factor因子分析过程运行后,主要的结果见表36.2到表36.9。

表 36.2 均值、标准差及相关矩阵

Means and Standard Deviations from 12

observations

(每个变量的均值和标准差)

POP SCHOOL EMPLOY SERVICES HOUSE

Mean 6241.66667 11.4416667 2333.33333 120.833333 17000

Std Dev 3439.99427 1.78654483 1241.21153 114.927513 6367.53128

Correlations

(相关矩阵)

POP SCHOOL EMPLOY SERVICES HOUSE

POP 1.00000 0.00975 0.97245 0.43887 0.02241

SCHOOL 0.00975 1.00000 0.15428 0.69141 0.86307

EMPLOY 0.97245 0.15428 1.00000 0.51472 0.12193

SERVICES 0.43887 0.69141 0.51472 1.00000 0.77765

HOUSE 0.02241 0.86307 0.12193 0.77765 1.00000

表 36.3 主成分法的输出结果

用极大似然法估计因子载荷矩阵_[转载]第三十六课         因子分析相关推荐

  1. 用极大似然法估计因子载荷矩阵_第7章-因子分析.ppt

    7.3 因子正交旋转 在第7.1节我们已经看到,满足方差结构Σ =AAT+Ф的因子模型并不惟一,模型的公因子与载荷矩阵不惟一.如果F是模型的公因子,A是相应的载荷矩阵,而T是m×m正交矩阵,则F*=T ...

  2. 用极大似然法估计因子载荷矩阵_应用统计学与R语言实现学习笔记(十三)——因子分析...

    Chapter 13 Factor Analysis 本篇是第十三章,内容是因子分析. 这篇博客的完整内容包含各类数学表达.可以见我CSDN和hexo搭的个人博客. CSDN博客 1 因子分析概念 因 ...

  3. 新版标准日本语初级_第三十六课

    语法   1. 小句1て,小句2或小句1で,小句2:这种形式还可以用来表示原因.理由,即小句1是小句2的原因.理由.不过,小句2不可以是祈使句(或称为命令句). 遅くなって,すみません(我迟到了,真抱 ...

  4. gram矩阵_推荐算法三视角:矩阵,图,时间线

    关于推荐系统,如果在忘掉所有的公式和代码,忘记所有的语言描述,脑海里就剩下几张图景,会是什么?一张二维表格,一个拓扑图,一条时间线.这三幅图景,是我看待推荐算法的三种视角. 视角一:矩阵视角 在脑中想 ...

  5. java图片转为rgb矩阵_[转载]图像类型转换--RGB图像、索引图像、灰度图像、二值图像和数据矩阵(1)...

    要点: RGB转换为灰度图像(包括将彩色映射表对应的索引图像的映射表转换成灰度映射表'图像其实是彩色的'): RGB转换为索引图像: 灰度图像转换成索引图像: 索引图像转换成灰度图像: 索引图像转换为 ...

  6. threejs添加立方体_前端图形学(三十)——从源码去看threejs中的光照模型

    欢迎来到[畅哥聊技术]前端图形学相关技术文章,更多精彩内容持续更新中,敬请关注. 上章节回顾 熟悉了threejs中内置的几何图形的渲染原理就是通过顶点渲染 传入自定义顶点渲染自定义的几何图形 本章目 ...

  7. 某一个接口403 其他接口可以调通_Neo的务实外设指南 篇三十六:一个就够,65W快充+C口混插+最多6个设备 - 飞利浦65W摩天轮插座_插座...

    2020-10-26 15:29:0623点赞23收藏2评论 嗨,大家好!我是沈少! 之前晒雷电3扩展坞的时候,已经有小伙伴注意到我用来提供PD充电的是一个很小巧的魔方插座.也有朋友私下提醒我,这类产 ...

  8. 网页设计图片向上浮动_果冻公开课第六课:5分钟理解浮动布局

    浮动,是如何实现页面布局的呢? 它有哪些特质和使用方法? 今天,我们就用5分钟的动画短视频来深入浅出地理解浮动~ 动画视频: 果冻公开课:如何理解浮动布局? 文字解析: 网页儿也能这么图文并茂吗? 假 ...

  9. python量化选股策略_【机器学习】第六课:基于SVM的量化选股策略

    导语 接触过机器学习或数据挖掘算法的人都应该知道支持向量机(SVM),支持向量机一经提出就得到了广泛应用.本文主要探讨该算法在金融领域量化投资多因子策略上的应用.在这篇文章中,先是介绍了SVM的基本原 ...

  10. 【转载】三十而已,信智依然 | 田溯宁:写在亚信科技30华诞

    1993年4月17日,我和丁健等几位留美学生在德克萨斯创立了AsiaInfo(亚信),如今正好30周年. 图:亚信科技初期骨干人员合影 <论语>讲"三十而立". 对于人 ...

最新文章

  1. javascript迭代器_JavaScript符号,迭代器,生成器,异步/等待和异步迭代器-全部简单解释...
  2. SVN地址正确,能在网页打开,但是检出失败解决方法
  3. 自动化机器学习(三)神经网络架构搜索综述(NAS)简述
  4. kotlin学习之lambda(十)
  5. Maven 学习 (0) Maven 简介
  6. redux中间件原理-讲义
  7. 消息称谷歌Pixel系列手机默认禁用美颜功能
  8. Linux系统启动过程,grub重装。
  9. jQuery JCrop插件的一个问题
  10. MySQL 数据类型、字符集编码、存储引擎
  11. Jmeter安装及简单使用
  12. web渗透中bypass防护系统
  13. Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1)
  14. [BZOJ3772]精神污染(dfs序+主席树)
  15. 路由器DNS被劫持 解决办法、dns 被劫持怎么解决
  16. 基于Qt的智能管家客户端设计
  17. YOLOv5改进之十三:主干网络C3替换为轻量化网络EfficientNetv2
  18. 手把手带你从0开始搭建个人网站,小白可懂的保姆级教程
  19. Conflux CTO 伍鸣博士出席2019北京国际金融安全论坛
  20. matlab中辗转相除法,基于Matlab的辗转相除法

热门文章

  1. 创业公司中运营人员的典型一天是怎么度过的?
  2. 如何编写c语言延时程序,单片机写延时程序的几种方法
  3. 通灵学院|游戏设计研习1:人类的需求与动机★(1200字)
  4. DAVIS Driving Dataset 2020 (DDD20) 【转载】
  5. 一起学习LLVM(一)
  6. (转)ICO泡沫:8万本金赚套房子和宝马 几分钟十几万没了
  7. mongoDB操作-持续更新中...
  8. OPC:服务器开发(一)如何开发OPC Server
  9. UTONMOS数字藏品走红之后,为艺术打开了另一条路
  10. 《SQL进阶教程》学习