天软金融分析.NET函数大全 > TSL函数 > 数学函数 > 多元统计分析

Factor    

简述
对样本数据进行因子分析,分别采用主成分分析法估计因子载荷矩阵(因子载荷矩阵不唯一),方差最大法做载荷矩阵的正交旋转矩阵,回归方法计算因子得分
定义
Factor(X:Array of Real; VarValue:Real):Array;
参数
名称类型说明
XArray of Real 二维维实数数组,表示样本矩阵;
VarValueReal实数,表示方差贡献率,控制因子个数;
返回结果:ss
Ret["Correlation Matrix",0]:样本数据的相关系数矩阵
Ret["kmo",0]:KMO检验值;0.9<KMO: 非常适合;0.8<KMO<0.9:适合;0.7<KMO<0.8:一般; 0.6<KMO<0.7:适合度较低;KMO<0.6:适合度很低
ret["Total Variance Explained",0]:特征值、方差贡献率、累计方差贡献率等信息
ret["Component Matrix",0]:因子载荷矩阵
ret["Communalities",0]:共同变量度,即载荷矩阵行的平方和
ret["thogonal matrix",0]:正交变换后的载荷矩阵
ret["Rotation matrix",0]:旋转矩阵
ret["Factor score",0]:因子得分
  • 范例

    我们对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 
相关
FAQ/知识库链接