主要内容

使用因子分析分析股票价格

这个例子展示了如何分析同一行业内的公司是否经历了类似的每周股价变化。

因子载荷

加载样例数据。

负载stockreturns

假设在100周的过程中,记录了10家公司的股票价格的百分比变化。在这十家公司中,前四家主要是技术公司,接下来的三家是金融公司,最后三家是零售公司。同一行业的公司的股价随着经济状况的变化而一起变化,这似乎是合理的。因子分析可以提供定量证据。

首先指定一个符合三个公共因素的模型。默认情况下,factoran计算负载的旋转估计,以使其解释更简单。但是在这个例子中,指定一个未旋转的解。

[负载,具体var,T,stats] =因子an(股票,3,“旋转”“没有”);

前两个factoran输出参数是估计的负载和估计的特定方差。负载矩阵的每一行代表10只股票中的一只,每一列对应一个公共因子。使用非旋转估计,解释这种拟合中的因素是困难的,因为大多数股票包含两个或多个因素的相当大的系数。

载荷
载荷=10×30.8885 0.2367 -0.2354 0.7126 0.3862 0.0034 0.3351 0.2784 -0.0211 0.3088 0.1113 -0.1905 -0.6643 0.1478 0.4726 -0.6383 0.0133 0.1133 -0.5416 0.0322 0.6403 0.1669 0.4960 0.5770 0.1105 0.1680 0.5524

中的因子旋转有助于简化结构载荷矩阵,使它更容易分配有意义的解释的因素。

从估计的特定方差中,您可以看到模型表明,特定股票价格的变化远远超出了由于公共因素造成的变化。显示估计的特定方差。

specificVar
specificVar =10×10.0991 0.3431 0.8097 0.8559 0.1429 0.3691 0.6928 0.3162 0.3311 0.6544

特定方差为1表示该变量中没有公共因子成分,而特定方差为0表示该变量完全由公共因子决定。这些数据似乎介于两者之间。

显示p价值。

stats.p
Ans = 0.8144

p返回的值统计数据结构未能拒绝三个公因子的零假设,这表明该模型对这些数据的共变提供了满意的解释。

用两个公共因素拟合模型,以确定是否少于三个因素可以提供可接受的拟合。

[Loadings2,specificVar2,T2,stats2] = factoran(股票,2,“旋转”“没有”);

显示p价值。

stats2.p
Ans = 3.5610e-06

p第二次拟合的-value值非常显著,并拒绝了两个因素的假设,表明更简单的模型不足以解释这些数据中的模式。

因子旋转

如结果所示,由非旋转因子分析拟合得到的负荷估计可能具有复杂的结构。因子旋转的目标是找到一个参数化,其中每个变量只有少量的大负载。也就是说,每个变量都受到少数几个因素的影响,最好只有一个。这通常可以更容易地解释这些因素所代表的内容。

如果将载荷矩阵的每一行看作m维空间中一个点的坐标,那么每个因子对应于一个坐标轴。因子旋转相当于旋转这些轴并在旋转的坐标系中计算新的载荷。有很多方法可以做到这一点。一些方法使轴保持正交,而另一些方法是改变轴之间角度的斜方法。对于本例,您可以使用promax准则(一种常见的倾斜方法)来旋转估计的负载。

[LoadingsPM,specVarPM] = factoran(股票,3,“旋转”的电子产品品牌);LoadingsPM
LoadingsPM =10×30.9452 0.1214 -0.0617 0.7064 -0.0178 0.2058 0.3885 -0.0994 0.0975 0.4162 -0.0148 -0.1298 0.1021 0.9019 0.0768 0.0873 0.7709 -0.0821 -0.1616 0.5320 -0.0888 0.2169 0.2844 0.6635 0.0016 -0.1881 0.7849 -0.2289 0.0636 0.6475

Promax轮转在负载中创建了一个更简单的结构,其中大多数股票仅在一个因素上具有较大的负载。为了更清楚地看到这个结构,您可以使用双标图函数以其因素负荷为坐标绘制每个股票。

biplot (LoadingsPM“varlabels”num2str ((1:10) '));轴广场视图(155年,27);

图中包含一个轴对象。axis对象包含31个类型为line, text的对象。

该图显示promax将因子负载旋转到一个更简单的结构。每一种股票主要只取决于一种因素,而且可以根据每种因素所影响的股票来描述每种因素。根据哪些公司靠近哪些轴,您可以合理地得出结论,第一个因素轴代表金融部门,第二个因素轴代表零售,第三个因素轴代表技术。最初的猜想,即股票主要在行业内部存在差异,显然得到了数据的支持。金宝app

因子得分

有时,能够根据其因子分数对观察结果进行分类是有用的。例如,如果你接受三因素模型和旋转因素的解释,你可能想根据观察到的10只股票的数据,根据对三个股票行业的有利程度,对每周进行分类。因为这个例子中的数据是原始的股票价格变化,而不仅仅是它们的相关矩阵,你可以有factoran返回每个星期三个旋转的公共因子的估计值。然后,您可以绘制估计的分数,以了解不同的股票部门在每周是如何受到影响的。

[LoadingsPM,specVarPM,TPM,stats,F] = factoran(股票,3,“旋转”的电子产品品牌);plot3 (F (: 1) F (:, 2), F (:, 3),“b”。) line([-4 4 NaN 0 0 NaN 0 0],[0 0 NaN -4 4 NaN 0 0],[0 0 NaN 0 0 NaN -4 4],,“颜色”“黑”)包含(金融行业的) ylabel (“零售业”) zlabel (技术部门的网格)广场视图(-22.5,8)

图中包含一个轴对象。axis对象包含2个line类型的对象。

斜向旋转通常会产生相互关联的因素。该图显示了第一个和第三个因素之间的相关性的一些证据,您可以通过计算估计的因素相关性矩阵进一步调查。

发票(TPM的* TPM);

可视化结果

您可以使用双线图函数来帮助在单个图中可视化每个变量的因子负荷和每个观察的因子得分。例如,下面的命令绘制股票数据的因子分析结果,并标记10只股票中的每一只。

biplot (LoadingsPM“分数”F“varlabels”num2str((1:10)))包含(金融行业的) ylabel (“零售业”) zlabel (技术部门的)轴广场视图(155年,27)

图中包含一个轴对象。axis对象包含32个类型为line, text的对象。

在这种情况下,因素分析包括三个因素,因此双线图是三维的。在这个图中,10只股票中的每一只都用一个向量表示,向量的方向和长度表明了每只股票如何依赖于潜在因素。例如,您已经看到在promax轮转之后,前四支股票在第一个因素上有正的负荷,而在其他两个因素上有不重要的负荷。第一个因素被解释为金融部门的影响,在这个双线图中表示为一个横轴。这四种股票对该因子的依赖关系对应于大约沿该轴方向的四个向量。类似地,股票5、6和7主要依赖于第二个因素,被解释为零售部门效应,由近似沿该轴方向的向量表示。

在这个图中,100个观测值中的每一个都用一个点表示,它们的位置表示每个观测值对这三个因素的得分。例如,该图顶部附近的点在科技行业因素方面得分最高。这些点被缩放以适应单位正方形,因此只能从图中确定它们的相对位置。

您可以使用数据指针工具工具菜单中标识此图中的项。通过单击一个股票(矢量),您可以读取该股票的装载为每个因素。通过单击一个观察点(点),您可以读出该观察点对每个因素的得分。