数据科学之机器学习17:因子分析2

来源:互联网 发布:matlab2016a mac 破解 编辑:程序博客网 时间:2024/04/29 04:26

artical 35

图片来源于网址

“文章原创,转载请注明出处”


这两天来了个同学,大家聚了聚,我也乘机休息了两天(好奢侈!)。这两天属于什么都没有写,就翻看了两本书。一本是二月河的康熙大帝,另外一本是推荐系统实践,这本书的电子版,图灵正在打折,有兴趣可以买本看看。


好了,不废话了,下面就接着上一篇讲的继续!上一篇简单介绍了因子分析的一些概念,以及最基础的因子模型:正交因子模型。那么这一篇,就来说说正交因子模型的参数估计问题

对于一组p维样本,有n个观测值:x1,x2,,xn,则其均值和协方差矩阵可以使用样本均值和样本协方差矩阵来估计:

μ^=x¯=1ni=1nxi
Σ^=S=1n1i=1n(xix¯)(xix¯)

在因子模型中,需要估计的有两个参数:因子载荷矩阵A=(aij:p×m)以及特殊方差矩阵D=diag(σ21,σ22,,σ2p)


1. 主成分法


主成分法的思想取自于主成分分析,即是取出前m个成分作为主成分,然后以此来得到因子载荷矩阵的估计;然后再以协方差阵和因子载荷矩阵为条件,直接推出特殊方差矩阵。具体如下:

  1. 求出协方差矩阵S的特征值:λ^1λ^2λ^p0,其对应的特征向量为:t^1,t^2,,t^p
  2. 选一个较小因子数m,并且使得前m项累计贡献率mi=1λ^ipi=1λ^i高于设定值。
  3. 将协方差矩阵S做这样的近似:S=mi=1λ^i+pi=m+1λ^imi=1λ^i+D^:=A^A^+D^

其中,A=(λ^1t1,λ^2t2,,λ^mtm),D^=diag(σ^21,σ^22,,σ^2p),σ^2i=siimj=1a^2ij

从上述的过程来看,我们是使用了一种近似的方法估计出了AD,那么这就有一个残差矩阵S(A^A^+D^),显然这个矩阵的对角线元素为0。既然是一种近似,那么,如果这个残差矩阵的非对角线元素都非常小的时候,我们就可以认为取m个因子的模型就可以很好地解释或者是拟合原始的数据了。


2. 主因子法


对于因子模型,我们先对原始向量进行标准化,则有:R=AA+D。取约相关矩阵R=RD=AA,假设特殊方差σ2i的一个估计值σ^2为初始估计,则有约相关矩阵的估计值为:

其中R^为样本相关矩阵,D^=diag(σ21^,σ22^,,σ2p^)h2i^=1σ2i^h2i的初始估计。

计算R^的特征值,取足够小,但累计贡献率达到要求的m:λ1^λ2^λm^>0,其对应的特征向量为:t1^,t2^,,tm^,则得到 A 的估计值:

A^=(λ1^t1,λ2^t2,,λm^tm)

那么σ2i的最终估计为: σ2i^=1h2i^=1mj=1a2ij^

可以看到,这是一个可以迭代的过程,我们可以一直迭代,直到结果达到稳定为止!从过程来看,这里其实也是利用了主成分,因而,主因子法也是主成分法的一种修正!

那么接下来的问题就是,这个特殊方差σ2i的初始估计值应该如何取呢?最常用的取法:σ2i^=1/rii, 其中riiR^1对角线元素的第i个。


3. 极大似然法


使用极大似然估计,那么就肯定需要使用样本的分布,这里我们假定公共因子fNm(0,I),特殊因子εNp(0,D),并且相互独立!这里的假设其实就是来源于模型的正交性假设,只不过是将正交性假设进一步限定,假设它们都是属于多元正态分布!

有了上述假设,通过模型就可以知道xNp(μ,Σ),有了这个就可以计算样本的似然函数了,这里涉及到较为复杂的矩阵计算,不想多说,有兴趣的话可以查找一些资料;或者学习一下线性模型中关于矩阵求导的知识,然后自己推导一下。

一般情况下,极大似然法使用得并不太多,因为这个方法是算不出显式解的,在没有限制条件的情况下,解也并不唯一确定!但是如果是在因子分部可以明显知道的情况下,使用这个方法就比较好了!


总结


到这边,对于基础的因子模型就介绍结束了。回顾一下,主要就是介绍了正交因子模型以及它的参数估计问题。但是,到这里,我们还没有说到模型中的公共因子如何解释这个问题!对于这个问题的解释,通常结合实际的问题,需要一定的专业知识和经验,然后才能给每个公共因子给出一个实际意义。而且,公共因子的解释,在很大程度上也依赖于因子模型中因子载荷矩阵的元素结构!这个时候就会牵扯出因子分析中其它的一些问题:因子旋转因子得分。因为这两个问题涉及到一些比较复杂的数学知识,我不能够在清减数学的情况下说好它,如果单说怎么用,我觉得没有必要,所以暂时并不打算介绍这两个问题。有兴趣的,可以翻阅一些多元统计的书籍,一般都会有讲。


转自:http://jackycode.github.io/blog/2014/05/19/factor-analysis2/

0 0