多元统计分析及R语言建模 第9章 因子分析及R使用 王斌会 教授
多元统计分析及R语言建模 第9章 因子分析及R使用 plot(1:100)
多元统计分析及R语言建模 内容与要求 第9章 因子分析及R使用 内容: 要求: 因子分析模型的基本思想,与主成分分析的区别。 数学模型,基本假定,因子载荷阵的估计方法,因子旋转,因子得分。 因子旋转和因子得分的实际统计意义和数学表达式。 计算程序中有关因子分析的算法基础。 内容与要求 要求: 了解因子分析的目的和实际意义。 熟悉因子分析数学模型建模的假设条件和各个分量的实际统计意义。 掌握由主成分方法估计因子载荷阵的推导步骤,以及重要的基本性质。 能够利用计算软件编程解决实际问题中的因子分析问题,给出统计分析报告。
9 因子分析及R使用 区别与联系 9.1 因子分析的思想 区别 联系 主成分分析通过线性组合将原变量综合成几个主成分,用较少的综合指标来代替原来较多的指标。因子分析通过构筑若干意义较为明确的公因子,并以它们为框架分解原变量考察原变量间的联系与区别。 主成分分析是“变异数”导向的方法,因子分析是“共变异数”导向的方法。 区别与联系 联系 因子分析是主成分分析的推广,也是一种把多个变量化为少数几个综合变量的多变量分析方法。
9 因子分析及R使用 特点与用途 9.1 因子分析的思想 特点 用途 因子分析把众多的指标综合成几个为数较少的公共指标,即因子。其特点是: 因子变量的数量远远少于原始变量的个数; 因子变量并非原始变量的简单取舍,而是一种新的综合; 因子变量之间没有线性关系; 因子变量具有明确的解释性,可以最大限度地发挥专业分析的作用。 特点与用途 用途 因子分析主要用途: 减少分析变量个数; 通过对变量间相关关系探测,将原始变量进行分类。
9 因子分析及R使用 模型提出 9.2 因子分析模型 基本思想 Q型与R型因子分析 因子分析是将相关性较高,即联系比较紧密的分在同一类中,而不同类变量之间的相关性则较低,每一类变量代表了一个基本结构,即公共因子。 对于所研究的问题就是试图用最少个数的不可测的所谓公共因子的线性函数与特殊因子之和来描述原来观测的每一分量。 模型提出 Q型与R型因子分析 研究样品间的相互关系的因子分析称为Q型因子分析, 研究变量间相互关系的因子分析称为R型因子分析。 本章主要讨论并运用的是R型因子分析。
9 因子分析及R使用 9.2 因子分析模型 因子分析模型:
9 因子分析及R使用 9.2 因子分析模型 因子分析模型:
9 因子分析及R使用 9.3 因子载荷的估计及解释 因子载荷的估计 要建立实际问题的因子模型,关键是要根据样本数据估计因子的载荷矩阵,其中使用最为普遍的方法是主因子法(也称主成分法)。 主因子估计法 极大似然估计法 因子载荷估计方法 因子载荷的统计意义 因子载荷aij表示xi依赖Fj的程度,其值越大,依赖程度越大。
9 因子分析及R使用 9.3 因子载荷的估计及解释 因子分析函数factanal()的用法 注:该函数是基于极大似然方法来求解的。 factanal(X,factors,scores=c("none", "regression","Bartlett"), rotation="varimax", ...) 自编因子分析函数factpc()的用法 注:该函数是基于主因子方法来求解的,该函数对数据的分布要求不高。 factpc<-function(X,m=2,scores = c("none", "regression"), rotation="varimax")
9 因子分析及R使用 9.3 因子载荷的估计及解释 【例9.1】水泥行业上市公司经营业绩因子模型实证分析 评价指标的选择 评价指标的选择 盈利能力:主营业务利润率、净资产收益率、销售毛利率和净值报酬率 偿债能力:流动比率、速动比率、现金比率、资产负债率 发展能力:主营业务收入增长率、营业利润增长率、净利增长率 2. 数据整理和标准化
9 因子分析及R使用 9.3 因子载荷的估计及解释 【例9.1】水泥行业上市公司经营业绩因子模型实证分析 3. 计算相关系数矩阵 3. 计算相关系数矩阵 #在mvstats4.xls: d9.1中选取A1:G15区域,然后拷贝 主营业务利润率x1与销售毛利率x2呈高度正相关,速动比率x3与资产负债率x4呈较强的负相关。主营业务收入增长率x5和营业利润增长率x6呈中度相关关系。为了消除各财务指标之间的相关性,采用因子分析方法并提取因子。 X=read.table("clipboard",header=T) cor(X)
9 因子分析及R使用 9.3 因子载荷的估计及解释 【例9.1】水泥行业上市公司经营业绩因子模型实证分析 4. 计算特征值、因子载荷及共同度 #极大似然法因子分析 (FA0=factanal(X,3,rot="none"))
9 因子分析及R使用 9.3 因子载荷的估计及解释 【例9.1】水泥行业上市公司经营业绩因子模型实证分析 4. 计算特征值、因子载荷及共同度 #主成份法因子分析 library(mvstats) (Fac=factpc(X,3))
9 因子分析及R使用 9.4因子旋转方法 旋转目的 建立因子分析模型的目的不仅是找出主因子,更重要的是知道每个主因子的意义,以便对实际问题进行分析。 如果求出主因子后,各个主因子的典型代表变量不很突出,还需要进行因子旋转,通过适当的旋转得到比较满意的主因子。 使因子载荷矩阵中因子载荷的绝对值向0和1两个方向分化,使大的载荷更大,小的载荷更小。
9 因子分析及R使用 9.4因子旋转方法 旋转方法 因子旋转的方法有很多,最常用的方法是最大方差正交旋转法(Varimax)。 正交旋转 斜交旋转 最大方差正交旋转法(Varimax) Promax法
9 因子分析及R使用 9.4因子旋转方法 【例9.2】对例9.1的应用极大似然法因子进行旋转
9 因子分析及R使用 9.4因子旋转方法 【例9.2】对例9.1的应用极大似然法因子进行旋转 旋转前各综合因子代表的具体经济意义不很明显; 旋转后各因子代表的经济意义则十分明显。
9 因子分析及R使用 9.4因子旋转方法 【例9.2】对例9.1的应用极大似然法因子进行旋转 #varimax法旋转因子分析 (Fa1=factanal(X,3,rot="varimax"))
9 因子分析及R使用 9.5因子得分计算 因子得分函数 因子分析模型建立后,还有一个重要的作用是应用因子分析模型去评价每个样品在整个模型中的地位,即进行综合评价。 因子得分函数 回归估计法 Bartlett估计法 因子得分估计方法
9 因子分析及R使用 9.5因子得分计算 【例9.3】(续例9.1)对例9.1的因子计算因子得分 #使用回归估计法的极大似然法因子分析 Fa1=factanal(X,3,scores="regression") Fa1$scores
9 因子分析及R使用 9.5因子得分计算 【例9.3】(续例9.1)对例9.1的因子计算因子得分 #使用回归估计法的主成份法因子分析 Fac1=factpc(X,3,scores="regression") Fac1$scores
9 因子分析及R使用 9.6因子分析的步骤 1 2 3 4 因子分析的步骤 确认待分析的原变量是否适合作因子分析。 构造因子变量。 利用旋转方法使因子变量更具有可解释性。 4 计算因子变量得分
9 因子分析及R使用 9.6因子分析的步骤 因子分析的计算过程 1 2 3 4 5 6 7 8 9 原始数据标准化 求标准化数据的相关矩阵 求相关矩阵的特征值和特征向量 4 计算方差贡献率与累积方差贡献率 5 确定因子 6 因子旋转 7 用原指标的线性组合来求各因子得分 8 综合得分 9 得分排序
9 因子分析及R使用 9.6因子分析的步骤 【例9.4】对例9.1数据计算综合因子得分,对水泥行业进行综合评价 #因子得分作图与排名 factanal.rank(Fa1,plot=T)
9 因子分析及R使用 9.6因子分析的步骤 信息重叠图函数 biplot(scores, loadings...) 例子 #前2个因子信息重叠图 biplot(Fa1$scores,Fa1$loadings)
9 因子分析及R使用 9.6因子分析的步骤 【例9.5】 (续例7.2和例8.2) #在mvstats.xls:d7.2中选取A1:I32区域,然后拷贝 X=read.table("clipboard",header=T) #读取例7.2数据 library(mvstats) Fac0=factpc(X,3) #因子分析 Fac0$Vars #方差及贡献率
9 因子分析及R使用 9.6因子分析的步骤 【例9.5】 (续例7.2和例8.2) Fac1=factpc(X,3,rot="varimax") #运用旋转因子分析 Fac1$Vars #方差及贡献率
9 因子分析及R使用 9.6因子分析的步骤 【例9.5】 (续例7.2和例8.2) 公共因子在原始变量上的载荷值不太好解释,故对其进行因子旋转(方差最大化正交旋转)。
9 因子分析及R使用 9.6因子分析的步骤 【例9.5】 (续例7.2和例8.2) Fac0$loadings #因子载荷
9 因子分析及R使用 9.6因子分析的步骤 【例9.5】 (续例7.2和例8.2) 有了各个公共因子合理的解释,结合各个省、市、区在三个公共因子上的得分和综合得分,就可以对各省、市、区的综合人均消费水平进行评价了。
··· ··· 9 因子分析及R使用 9.6因子分析的步骤 【例9.5】 (续例7.2和例8.2) 回归法估计出因子得分 Fac1$scores #因子得分 Fac1$Rank #排名 ··· ···
9 因子分析及R使用 9.6因子分析的步骤 【例9.5】 (续例7.2和例8.2) plot.text(Fac1$scores) #因子得分图 biplot(Fac1$scores,Fac1$loading) #信息重叠图
9 因子分析及R使用 9.7实际中如何进行因子分析 1 2 3 4 5 6 7 因子分析的步骤 问题的定义 一个完整的因子分析过程应当包含如下方面: 2 选择因子分析的方法 3 确定因子数目 4 因子旋转 5 因子解释 6 因子得分 7 因子分析的意义