主要内容

用因子分析分析股票价格

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

因子载荷

加载样例数据。

负载stockreturns

假设在100周的时间里,有10家公司的股价变化百分比被记录下来。在这十家公司中,前四家主要属于科技公司,后三家属于金融公司,最后三家属于零售公司。随着经济状况的变化,同一行业的公司的股价可能会一起变化,这似乎是合理的。因子分析可以提供定量证据。

首先指定一个具有三个公因式的拟合模型。默认情况下,factoran计算负载的旋转估计,试图使其解释更简单。但在本例中,指定一个未旋转的解。

(载荷、specificVar T统计)= factoran(股票、3、“旋转”“没有”);

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

载荷
载荷=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.6277 -0.6643 0.1478 0.4726 -0.6383 0.0133 0.1133 -0.5416 0.0322 0.6403 0.1669 0.4960 0.2363 0.5293 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.5610 e-06

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

因子旋转

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

如果你把载荷矩阵的每一行看作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函数将每个股票的因子装载作为坐标来绘制。

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

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

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

因子得分

有时,能够根据因子得分对观察结果进行分类是很有用的。例如,如果您接受三因素模型和对旋转因素的解释,那么您可能希望根据来自10只观察到的股票的数据,根据对三个股票板块的有利程度对每周进行分类。因为这个例子中的数据是原始股价变化,而不仅仅是它们的相关矩阵factoran返回每星期三个旋转公因数每个值的估计数。然后,您可以绘制估计分数的图,看看不同的股票板块在每一周内受到了怎样的影响。

[LoadingsPM,specVarPM,TPM,stats,F] = factoran(股票,3,“旋转”的电子产品品牌);plot3 (F (: 1) F (:, 2), F (:, 3),“b”。)行([-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)

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。

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

发票(TPM的* TPM);

可视化的结果

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

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

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

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

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

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

Baidu
map