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

因子分析是统计学中的一种多变量分析方法,旨在通过有限个不可观察的公共因子来解释变量间的相关性。本文详细介绍了因子分析的基本概念,如公共因子、因子载荷矩阵及其统计意义,以及因子载荷矩阵的求解方法,包括主成分法、主因子解法和极大似然法。极大似然法通过假设公共因子和特殊因子服从正态分布,求解因子载荷矩阵以达到最佳解释性。因子分析的目标不仅在于降维,更在于识别并解释潜在的公共因子。因子旋转是提升因子解释性的关键步骤,通过旋转可以得到更容易解释的因子模型。最后,文章给出了SAS软件中因子分析的PROC FACTOR过程的详细参数说明和实例分析。
摘要由CSDN通过智能技术生成

第三十六课

因子分析

因子分析(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是协方差矩阵 相应

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个问题需要针对具体的数据集和分析目的进行具体操作,以下是一般性的流程: 1. 数据预处理:包括数据清洗、缺失值处理、标准化等。 2. 选择因子分析方法:根据数据结构和分析目的选择主成分法、主因子法或最大似然法进行因子分析。 3. 计算因子载荷矩阵和特殊因子方差矩阵:根据所选择的因子分析方法,使用对应的算法计算因子载荷矩阵和特殊因子方差矩阵。 4. 因子旋转:使用因子旋转方法对因子进行旋转,以便更好地解释因子含义和提高结果的可解释性。 5. 计算结果输出:将计算结果进行输出,包括因子载荷矩阵、特殊因子方差矩阵因子旋转后的载荷矩阵和方差矩阵等。 以下是一个简单的 Python 实现示例: ```python import numpy as np import pandas as pd from sklearn.decomposition import FactorAnalysis from factor_analyzer import FactorAnalyzer # 读取数据 data = pd.read_csv('data.csv') # 数据预处理 data = data.dropna() # 删除缺失值 data = (data - data.mean()) / data.std() # 标准化数据 # 主成分法计算因子载荷矩阵和特殊因子方差矩阵 pca = FactorAnalysis(n_components=5) pca.fit(data) loadings = pca.components_.T communalities = np.sum(loadings**2, axis=1) # 主因子法计算因子载荷矩阵和特殊因子方差矩阵 fa = FactorAnalyzer(n_factors=5, rotation=None) fa.fit(data) loadings = fa.loadings_ communalities = fa.get_communalities() # 最大似然法计算因子载荷矩阵和特殊因子方差矩阵 ml = FactorAnalyzer(n_factors=5, method='ml', rotation=None) ml.fit(data) loadings = ml.loadings_ communalities = ml.get_communalities() # 因子旋转 rotator = FactorAnalyzer(n_factors=5, method='ml', rotation='varimax') rotator.fit(data) loadings_rotated = rotator.loadings_ communalities_rotated = rotator.get_communalities() ``` 需要注意的是,上述代码仅为示例,实际情况下需要根据具体的数据集和分析目的进行相应的改动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值