因子分析的模型和表达式

上传人:博****1 文档编号:559778435 上传时间:2023-07-05 格式:DOCX 页数:6 大小:16.34KB
返回 下载 相关 举报
因子分析的模型和表达式_第1页
第1页 / 共6页
因子分析的模型和表达式_第2页
第2页 / 共6页
因子分析的模型和表达式_第3页
第3页 / 共6页
因子分析的模型和表达式_第4页
第4页 / 共6页
因子分析的模型和表达式_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《因子分析的模型和表达式》由会员分享,可在线阅读,更多相关《因子分析的模型和表达式(6页珍藏版)》请在金锄头文库上搜索。

1、因子分析基本思想和主成分分析相似,首先从原理上说,主成分分析是试图寻找原有自变 量的一个线性组合,取出对线性关系影响较大的原始数据,作为主要成分。因子分析,是假设所有的自变量可以通过若干个因子(中间量)被观察 到。什么意思呢,举个例子,比如一个学生的考试成绩,语文80,数学95,英 语79,物理97,化学94 ,那么我们认为这个学生理性思维较强,语言组织能 力较弱。其中理性思维和语言组织能力就是因子。通过这两个因子,我们能够观 察到他的偏理科的成绩较高,偏文科的成绩较低。这就是因子分析,通过这点, 大家就可以感受到,因子分析和主成分分析是明显不一样的。因子分析又存在两个方向,一个是探索性因子分

2、析( exploratory factor analysis)。另一个是验证性因子分析(confirmatory factor analysis)。 探索性因子分析是不确定一堆自变量背后有几个因子,我们通过这种方法试图寻 找到这几个因子。而验证性因子分析是已经假设自变量背后有几个因子,试图通 过这种方法去验证一下这种假设是否正确。验证性因子分析又和结构方程模型有 很大关系。后面我们会专门的介绍,今天先介绍探索性因子分析。数学推导基于Python的因子分析数据是来自行业的10 个相关指标,通过因子分析提取出一些反应不同特征 的因子出来。最后根据因子对行业进行排名。import pandas as

3、 pdimport numpy as npfrom pandas import DataFrame,Seriesfrom factor_analyzer import FactorAnalyzerdatafile = uD:pythondatatextdata.xlsxdata = pd.read_excel(datafile)data = data.fillna(O)#用 0 填充空值fa = FactorAnalyzer()fa.analyze(data, 5, rotation二None)#固定公共因子个数为 5 个pri nt(公因子方差:n, fa.ge t_ communal it

4、i es()# 公因子方差print(n 成分矩阵:n, fa.loadings)#成分矩阵var = fa.ge t_ fac to r_variance()# 给出贡献率print(n解释的总方差(即贡献率):n, var)fa_score = fa.ge t_scores(da ta)# 因子得分fa_score.head()#将各因子乘上他们的贡献率除以总的贡献率,得到因子得分中间值a = (fa.get_scores(data)*var.values1)/var.values-1-1#将各因子得分中间值相加,得到综合得分ascore = a.apply(lambda x: x.sum

5、(), axis=1)基于R的因子分析数据是来自上市公司的财务指标,因此想通过因子分析将财务指标进降维 希望提取出一些反应不同特征的因子出来。最后根据因子对上市公司进行排名#设置路径setwd(D:/Rdata)#清除空间变量rm(list = ls()#载入读取excel的包library(readxl)library(psy)#读取数据dat.fact - read_excel(file=MicEcoData.xlsx) head(dat.fact)# A tibble: 6 x 8资产负债率总资产增长率B基本每股收益增长率B净利润增长率B营 业利润增长率B每股收益 每股营业收入 1 0.

6、9509960.3240080.0447760.0267530.056436 0.70002.0545152 0.5527440.4739200.3157890.7738550.799483 0.25000.3796733 0.0685071.9662110.4177781.1958431.199118 0.12760.2519274 0.5806200.3383511.4797912.7929402.749402 0.19020.2960745 0.3891050.083378-0.250000-0.224369-0.177181 0.06000.1530726 0.7555080.0615

7、88-0.4444440.4350940.435804 0.05000.206344# . with 1 morevariables:销售净利率 #重新命个名names(dat.fact) - paste(x, 1:ncol(dat.fact), sep=)#进行因子分析,设置因子个数为两个factor.result-factanal(x=dat.fact,factor=2,scores= regression#查看图psy:scree.plot(dat.fact)#查看因子分析的各种结果 uniquenessescorrelationnames(factor.result)1 converg

8、ed loadings 门criteriafactors7 dofmethodrotmatscoresSTATISTIC PVAL13 n.obs callprint(factor.result)Call:factanal(x = dat.fact, factors = 2, scores = regression)Uniquenesses:x1 x2 x3 x4 x5 x6 x7 x80.508 0.005 0.005 0.005 0.005 0.281 0.507 0.710Loadings:Factor1Factor2x10.695x20.997x30.997x40.998x50.998

9、x60.846x70.702x80.251-0.476Factor1 Factor2SS loadings4.0541.931Proportion Var0.5070.241Cumulative Var0.5070.748Test of the hypothesis that 2 factors are sufficient.The chi square statistic is 357.17 on 13 degrees of freedom.The p-value is 2.4e-68现在经过因子分析已经将原来的8个财务指标进行合并,形成了两个因子 那么这两个因子按照加权合并,就形成了一个指

10、标,通过对这一个指标进行排序 就可以得到上市公司的排名。下面是代码实现 :# 计算权重lambdas - eigen(factor.result$correlation)$value # 就 是特指值所占的比例(w - lambdas1:2/sum(lambdas1:2)0.6391052 0.3608948#计算因子得分#进score - factor.result$scores eva - score %*% w行排序eva,11, 0.449196492, -0.214186813, -0.478226504, -0.222189075, -0.454696016, -0.3112390

11、47, -0.333245078, -0.316348809, 0.1651005410, 0.19619702结论本节带领大家了解了一下,因子分析。通过因子分析主要发掘变量背后存在 的潜变量。并且提到了主成分分析与因子分析的不同,主成分分析主要是想寻找 原始特征的一个线性组合。这个组合方差要最大。方差最大保证了主要成分的提 取。为了计算方便,提出了一些假设,使得主成分分析成为了一个约束优化问题。 而因子分析呢,是从假设开始入手,假设原始特征是由于因子的影响产生的,因 此可以写出,从这个表达式逐步进行假设求解。当然呢,主成分分析和因子分析 有相似的地方,主要就是求解过程中,都很巧妙地和特征值,特征向量挂起关系。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号