因子模型简介

Posted 分析101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了因子模型简介相关的知识,希望对你有一定的参考价值。

1 总体的\\(k\\)-因子模型

1.1 模型设定

\\(x\\sim(\\mu,\\Sigma)\\)\\(\\text{rank}(\\Sigma)=r\\),固定\\(k\\lt r\\),则\\(k\\)因子模型的设定为

\\[x=Af+\\mu+\\epsilon \\]

其中\\(f\\)\\(k\\)维随机向量,称为共同因子(common factor),\\(A\\)\\(d\\times k\\)的线性变换,称为因子载荷(factor loading)。

一般会做出这些假设:\\(f\\sim(0,I_k)\\)\\(\\epsilon\\sim(0,\\Psi)\\)(其中\\(\\Psi\\)为对角矩阵),\\(\\text{Cov}(f,\\epsilon)=0_{k\\times d}\\)

有的文献中会假设\\(\\text{Var}(f)=\\Phi\\)\\(\\Phi\\)为对角矩阵,在这里我们假设它是球形的。在我们的假设下,我们有

\\[\\Sigma=AA\'+\\Psi \\]

我们可以看\\(\\Sigma\\)\\(AA\'\\)的各元素的接近程度,定义\\(AA\'\\)的对角线元素\\(\\tau_{jj}=\\sum_{l=1}^{k} a_{jl} a_{jl}\\)为第\\(j\\)个communality(共同性),它满足\\(\\sigma^2_j=\\sigma_{jj}=\\tau_{jj}+\\psi_j\\),而对于\\(\\Sigma\\)的非对角线元素有\\(\\sigma_{jm}=\\tau_{jm}\\)

如果用一个正交\\(k\\times k\\)矩阵\\(E\\),做\\(\\tilde A=AE\\)\\(\\tilde f=E\'f\\),那么我们依然有

\\[x=\\tilde A\\tilde f+\\mu+\\epsilon \\]

它也是\\(x\\)的一个\\(k\\)-因子模型,也同样满足上文的那些假设,这说明因子模型不是唯一的。并且,如果没有额外的信息,我们想只利用\\(\\Sigma\\)就求解出因子和载荷是不可能的,下面的例子就说明了这个问题。

1.2 案例

假设有\\(2\\)维随机向量\\(x\\)\\(\\Sigma=\\left[\\begin{matrix}1.25 &0.5\\\\0.5&0.5\\end{matrix}\\right]\\),假设单因子模型为

\\[x = \\left[\\begin{matrix}a_1\\\\a_2\\end{matrix}\\right] f+ \\left[\\begin{matrix}\\epsilon_1\\\\\\epsilon_2\\end{matrix}\\right] \\]

这里\\(f\\)为标量。

根据上文的推导,我们可以得出一些结论。如\\(AA\'\\)的非对角线元素就是\\(\\Sigma\\)的非对角线元素,即\\(a_1 a_2=0.5\\),而\\(AA\'\\)的对角线元素必定小于\\(\\Sigma\\)的对角线元素,即\\(a_1^2\\lt \\sigma_{11}=1.25\\)\\(a_2^2\\lt \\sigma_{22}=0.5\\)

但是,我们无法得出具体的\\(A\\),比如我们可以取\\(\\left[\\begin{matrix}a_1\\\\a_2\\end{matrix}\\right]=\\left[\\begin{matrix}1\\\\0.5\\end{matrix}\\right]\\),也可以取\\(\\left[\\begin{matrix}a^*_1\\\\a^*_2\\end{matrix}\\right]=\\left[\\begin{matrix}3/4 \\\\2/3\\end{matrix}\\right]\\),这些\\(A\\)都是可行的。也就是说,在没有额外信息或使用某些准则时,我们无法只利用\\(\\Sigma\\)解出\\(A\\)

2 一些选择\\(A\\)的准则

\\(1.2\\)中,我们给出了一个案例,说明想要选择\\(A\\)的解,必须要借助一些准则。这里介绍两种准则。

2.1 最小化\\(\\Psi\\)准则

我们可以选择使\\(\\Psi\\)更小的\\(A\\)。由于\\(\\Psi\\)是对角矩阵,可以直接用它的迹来表示大小。

\\(\\text{tr}(\\Psi)=0.25+0.25=0.5\\)\\(\\text{tr}(\\Psi^*)=\\dfrac{11}{16}-\\dfrac{1}{18}=0.7431\\),因此,可以选择\\(\\left[\\begin{matrix}a_1\\\\a_2\\end{matrix}\\right]=\\left[\\begin{matrix}1\\\\0.5\\end{matrix}\\right]\\)

2.2 Varimax准则

Kaiser(1958)提出了另一个准则varimax criterion:记\\(a_{jl}\\)\\(d\\times k\\)矩阵\\(A\\)的第\\(j\\)行、\\(l\\)列元素,他们定义

\\[VC(A) = \\sum_{l=1}^{k}\\left[\\dfrac{1}{d}\\sum_{j=1}^{d} a_{jl}^4-\\left(\\dfrac{1}{d}\\sum_{j=1}^{d}a_{jl}^2\\right)^2\\right] \\]

式子看起来很复杂,但我们可以理解成,先将\\(A\\)的所有元素做平方,然后计算某一列上的元素的方差,最后再对所有列加总。

\\(1.2\\)的案例进行计算,可以得到\\(VC(A)=0.1406\\)\\(VC(A^*)=0.0035\\),如果我们需要VC越大越好的载荷矩阵,就选择\\(\\left[\\begin{matrix}a_1\\\\a_2\\end{matrix}\\right]=\\left[\\begin{matrix}1\\\\0.5\\end{matrix}\\right]\\)。尽管在这里两种方法选出的矩阵是一样的,但它们不等价。

Varimax criterion的另一个用途是,寻找旋转后的载荷\\(AE\\),即它要寻找一个正交矩阵\\(E\\),使得

\\[\\tilde E=\\arg\\max VC(AE) \\]

3 样本的\\(k\\)-因子模型

\\(n\\)个样本排成\\(d\\times n\\)的矩阵\\(X=(x_1,\\ldots,x_n)\\),并将对应的每个\\(f\\)排成\\(k\\times n\\)矩阵\\(F=(f_1,\\ldots,f_n)\\),将对应的每个\\(\\epsilon\\)排成\\(d\\times n\\)矩阵\\(\\mathfrak{N}=(\\epsilon_1,\\ldots,\\epsilon_n)\\),我们可以得到

\\[X=AF+\\bar x\\ell_n\' +\\mathfrak{N} \\]

还是和总体情况下一样,这些变量满足\\(F\\sim(0,I_k)\\)\\(\\mathfrak{N}\\sim(0,\\Psi)\\),这里\\(\\Psi\\)为对角矩阵,\\(\\text{Cov}(F,\\mathfrak{N})=0_{k\\times d}\\)。样本的协方差矩阵可写为

\\[S=\\text{Var}(X)=\\text{Var}(AF)+\\text{Var}(\\mathfrak{N})=AA\'+\\Psi \\]

参考文献

  • Kaiser, H. F. (1958). The varimax criterion for analytic rotation in factor analysis. Psychometrika 23, 187–200.

以上是关于因子模型简介的主要内容,如果未能解决你的问题,请参考以下文章

大数据Spark MLlib基于模型的协同过滤

多因子模型用啥数据

四因子模型的介绍

概率图模型 ——因子图

2种方法筛选出多因子量化选股模型

动量参数开合模型