python求因子代码,正整数因子分解python

  python求因子代码,正整数因子分解python

  新人,请记录所有经验丰富的方法模型。

  本文从四个维度选取九个主要财务指标,对七家公司进行因子分析,主要利用因子分析对当前公司进行综合排名,评估公司的信用额度。

  注:本文对指定业务进行分析,因子分析过程中有所删节。请注意,要结合其他参考文献。因为数据涉及隐私,所以不公布。请根据样品的数量和尺寸创建所需的数据。

  指标评价公司基本情况的核心财务指标是公司的偿债能力、营运能力、盈利能力和发展能力。所以作为最能体现这些能力的指标,分析了9个指标。(净资产收益率(速动比率、流动比率、存货周转率、应收账款周转率、总资产增长率、销售利润率、资产负债率))。

  因子分析过程包括数据标准化充分性检测(协方差矩阵)、相关系数矩阵(特征值和特征向量的主成分个数)、因子数、方差、贡献率和累计贡献率。python函数库#导入库和函数包importnumpyasnpimportpandasaspdfromskleiningimport预处理from sklearn . decompositionimportcafort最大scaler,standscalerimportmathmathfromnmpyimport * ImportNumpy。linalgfrofactor _ AnalyzerImportFactor rotatorfromfrofactor通过calculate_kmo,calculate_bartlett_sphericity得到的数据以逗号分隔的格式保存在我自己的文本文件中,请参考

  #打开指定路径的文件(文件名可以包含汉字)file=open(rc:(users) file.txt ,encoding=utf-8 )列名names=open #删除公司名称并格式化df2=df1.drop([公司名称,axis=1))数据框。易于计算的数据=df2 . values # Data NP . set _ print options(suppress=true)数据标准化数据标准化的形式有很多种,这里选择标准差标准化。

  STD=标准定标器的前提(data _ zs=std。fit _ transform) data _ zs充分性测试因子分析直接调用sklearn库是一定的。

  Bartlett球形检测)。

  Bartlett的统计球形度用于检验观察变量之间是否存在相关性。如果检验结果在统计上不明显,就不能用因子分析。巴特利球检测的取值范围是0-1,越接近1,因子分析的效果会越好。

  凯泽-迈耶-奥尔金斯特(kmo检验)。

  KMO值:0.9以上很好;0.8或更高是优选的;0.7一般;0.6差异;0.5很差。低于0.5是不能接受的。

  # kmo值为0.7 KMO=calculate _ KMO(数据)#巴特利特球度检查P值为0.05巴特利特=calculate _巴特利特_球度)数据)打印巴特利特:(}。格式)KMO [1],巴特利特[1]))相关系数矩阵)原始数据相关性

  # Pearson相关系数data_corr=data.corr(print((n相关系数:(n),data_corr))获取协方差矩阵,cov是numpy库中计算协方差的函数。注意协方差矩阵9*9#的归一化矩阵的协方差矩阵由相关系数矩阵data_zs_cov=NP . cov(data _ zs . t)print((n协方差矩阵:\n),data _ zs _ cov

  #求特征值和特征向量,直接调用函数E求特征值和特征向量,求出ev=NLG。EIG(data_zs_cov) Eig=pd。数据帧)EIG [名称]=DF2。

  G=false,in place=true)print( \ neigen value \ n:,EIG) #检查特征向量,它将是一个特征向量EIG 1=PD . data frame(ev)EIG 1 . columns=df2 . columns EIG 1 . index=df2 . column sprint( \ neigen vector \。

  #计算区间内I的每个特征值的方差贡献率w=list()(len(e)):w . append(EIG[ e ][I]/EIG[ e ]。sum ()) print (w) #计算j在值域内特征值的累积贡献率q=list()(len(:q . append(EIG[ e ][:j])。sum ()/EIG [e]。sum ()) print (q) #求公因子m的个数,利用前m个特征值的比例大于80%的准则,根据累计贡献率,对值域中的m进行选择(len (e)): print (EIG [e] [:m]。sum ()) print (EIG [e] [:m])。sum()/EIG[]EIG[ e ]。sum()=0.8:print( \ n主成分数:,m)断因子分析#主成分数为m,提取方法为主成分提取法,旋转法为最大方差法,fa=因子分析器(n _ factors=m,method= principal ,Rotation= varimax )fa . fit(data)#因子载荷矩阵(分量矩阵)pd.dataframe (fa.loads _) #给出贡献率,第一行表示特征值的方差, 且第二行表示贡献率,第三行表示累计贡献率#此过程与上述方差贡献率结果一致var=fa . get _ factor _ variance()for I in range(0,3): print (var [I]) #公共因子方差、特殊因子方差、因子的方差贡献,反映公共因子对所有变量的贡献fa.get_communalities()因子得分#计算每个企业的因子得分fa _ t _ score=NP . dot(NP . mat(data _ zs)、np.mat (fa.loads _) DataFrame(fa_t_score))综合得分#综合得分(加权计算)权重=var[1] #计算各因素权重fa _ t _ score _ final=(NP . dot(fa _ t _ score,weight)/e.sum())。真实通知方差估计(ANOVA

  Python:默认情况下估计总体方差和标准差

  Spss:样本方差和标准差默认估计。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: