我们对2010年上证A股的9个财务指标进行因子分析:
TSL代码:
stockn:=getbk("上证A股");
vo:=BackUpSystemParameters();
SetSysParam(pn_date(),today());
sto:=array();
for nI:=0 to length(stockn)-1 do
begin
SetSysParam(pn_stock(),stockn[nI]);
if IsStockGoMarket(inttodate(20011231)) then
sto[length(sto)]:=stockn[nI];
end
st:=array2str(sto,";");
A1:= Query("",st,True,"","代码",DefaultStockID(),
"主营业务利润",report(46008,20101231),
"利润总额",report(46024,20101231),
"净利润",report(46033,20101231),
"加权每股收益",report(42003,20101231),
"每股净资产",report(42006,20101231),
"加权净资产收益率",report(42013,20101231),
"资产总计",report(44059,20101231),
"股本",report(44099,20101231));
RestoreSystemParameters(vo);
a:=zeros(mrows(a1),mcols(a1));
a[:,:]:=a1[:,:];
stock:=a[:,0];
data:=a[:,1:8];
//取得纯数据矩阵
br:=factor(data,0.85); //
return br;
结果分析:
Ret["kmo",0]=0.733,即表明数据可以做因子分析
ret["Total Variance Explained",0]:第一列为样本矩阵的相关系数矩阵的特征值,第二列为方差贡献率,第三列为累计方差贡献率
ret["Component Matrix",0]:因子载荷矩阵
ret["Communalities",0]:共同度表示三个因子解释掉变量的多少,显然,共同度越大,表示能解释原来变量的信息就越全;
ret["thogonal matrix",0]:从thogonal matrix中看出第一个公因子可以解释为“规模因子”,因为它的 0:主营业务收入净额、1:主营业务利润;、2:利润总额、3:净利润、7:资产总计、8:股本的绝对值都比较大;第二个公因子可以解释为“收益率因子”,因为其4:每股收益、5:每股净资产的绝对值大;第三个公因子则可以解释为“每股价值因子”因为其4:每股收益和6:净资产收益率;的绝对值较大。因子分析模型中的因子是抽象的,得根据研究对象的具体分析所解释,“解释”是抽象的概念。
ret["Rotation matrix",0]:旋转矩阵
array(
(0.9888,0.1296,0.0734),
(-0.149,0.8703,0.4695),
(-0.0031,-0.4752,0.8799))
ret["Factor score",0]:因子得分,表示各个股票在这三个因子的得分情况,让研究人员更好的做其他分析
princomp