实验内容
基本思想:是一种把多个变量化为少数几个综合变量的多变量分析方法,其目的是用有限个不可观测的隐变量来解释原始变量之间的相关关系。
实验要求
因子分析法在股票预报上的探索:在本例中为了验证因子分析法的有效性,特意不区分行业,以上海证券交易所和深圳证券交易所进行分层,然后把层内全部股票选入抽样框,以进行随机抽取。从手机金融界得到了23家企业在2004年3月31日的数据,所考虑的指标如下,
x1——流动比率(< 2偏低);
x2——速动比率(< 1偏低);
x3——现金流动负债比(%);
x4——每股收益(元);
x5——每股未分配利润(元);
x6——每股净资产(元);
x7——每股资本公积金(元);
x8——每股盈余公积金(元);
x9——每股净资产增长率(%);
x10——经营净利润率(%);
x11——经营毛利率(%);
x12——资产利润率(%);
x13——资产净利率(%);
x14——主营业务收入增长率(%);
x15——净利润增长率(%);
x16——总资产增长率(%);
x17——营业利润增长率(%);
x18——主营业务成本比率(%);
x19——营业费用比例(%);
x20——管理费用比例(%);
x21——财务费用比率(%);
(1)求样本相关阵R及特征根和特征向量;
(2)确定因子个数,并解释这些因子的含义;
(3)计算各因子得分,画出前两个因子的得分图并作出解释;
(4)对因子进行旋转,比较旋转前后因子分析的结果;
(5)对这23家上市企业的财务状况进行综合评价;
(6)提交报告。
实验工具
解题提示
因子分析步骤:
- 确认待分析的原变量是否适合作因子分析
- 构造因子变量
- 利用旋转方法使因子变量更具有可解释性
- 计算因子变量得分
== 因子分析的计算过程:== - 将原始数据标准化,以消除变量间在数量级和量纲上的不同
- 求标准化数据的特征值和特征向量
- 求相关矩阵的特征值和特征向量
- 计算方差贡献率与累积方差贡献率
- 确定因子:设F1,F2…Fp为p个因子,其中前m个因子包含的数据信息总量(及其累积贡献率)不低于80%的时候,可取前m个因子来反映原评价指标
- 因子旋转:若所得的m个因子无法确定活其实际意义不是很明显,这时需将因子进行旋转以获得较为明显的实际含义
- 用原标准指标的线性组合来求各因子得分:采用回归估计法、Bartlett估计法计算因子得分
- 综合得分:以各因子的方差贡献率为权,由各因子的线性组合得到综合评价值标函数:
- 得分排序:利用综合得分可以得到得分名次
实验报告解答
样本相关矩阵R以及特征值和特征向量
data=read.csv("文件存放路径",header=T)
attach(data)
data
数据标准化:
y=data[,3:22] #因为要取数据中的x1到x21所以从3到22
y=scale(y)
y
求变量间的相关系数矩阵
cor(y)
确定因子个数,并解释这些因子的含义
计算贡献率与累计贡献率:
pca=princomp(y,cor=FALSE,scores=TRUE)
summary(pca)
screeplot(pca,type="lines")
Comp1~comp8的累计方差贡献率达到91.6%,这部分承载了原数据绝大多数的信息。
之后我们做了最大似然法的因子分析
计算分子得分
将Comp1,comp2数据导入到csv表格中,计算出pc,并做出排序
FAO=factanal(y,8,rot="none")
FAO
由结果可以看出,前八个因子所解释的方差占整个方差的87% 以上,基本上能全面地反映六项财务指标的信息。所以我们提取前八个因子作为公共因子。但各因子的经济含义并不是很明显,画出前两个因子的得分图。
对因子进行旋转
FAO=factanal(y,8,rot="varimax")
FAO
上面两个图分别找到旋转前后的因子载荷。由该因子载荷对比表可以看出,旋转前各综合因子代表的具体经济意义不是很明显,而旋转后各因子代表的经济意义则十分明显。
综合评价
由回归估计法计算出各个样本的综合经营业绩得分,以各因子的方差贡献率占八个因子总方差贡献率的比重作为权重进行加权汇总,得出上市企业的财务状况进行综合评价,即
FAO=factanal(y,8,scores="regression")
factanal.rank(FAO,plot=T)
注
如果第五步中的factanal.rank命令执行报错的话,说明你的R软件中缺少mvstats的依赖包,只需要下载依赖包,然后引用就行。
引用方式:
source(“mvstats依赖包在电脑中的存储路径”,mvstats)
mvstats依赖包下载地址
在R中导入依赖包
library(mvstats)
之后就可以使用R语言mvstats依赖包里面的rank函数啦!