Python金融数据分析与挖掘(微课版) 课件 7-6.基于主成分聚类的上市公司盈利能力分析_第1页
Python金融数据分析与挖掘(微课版) 课件 7-6.基于主成分聚类的上市公司盈利能力分析_第2页
Python金融数据分析与挖掘(微课版) 课件 7-6.基于主成分聚类的上市公司盈利能力分析_第3页
Python金融数据分析与挖掘(微课版) 课件 7-6.基于主成分聚类的上市公司盈利能力分析_第4页
Python金融数据分析与挖掘(微课版) 课件 7-6.基于主成分聚类的上市公司盈利能力分析_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章

基础案例案例介绍案例分析及计算案例介绍第7章

以申万行业分类表中“计算机”行业所有上市公司2015年的盈利能力指标数据为基础字段名称指标名称说明F050502B净资产收益率B净利润/股东权益平均余额(X1)F050102B资产报酬率B(利润总额+财务费用)/平均资产总额(X2)F050202B总资产净利润率B净利润/总资产平均余额(X3)F051201B投入资本回报率(净利润+财务费用)/(资产总计−流动负债+应付票据+短期借款+一年内到期的非流动负债)(X4)F051501B营业净利率净利润/营业收入(X5)F053301B营业毛利率(营业收入−营业成本)/营业收入(X6)F051401B营业利润率营业利润/营业收入(X7)F052101B成本费用利润率(利润总额)/(营业成本+销售费用+管理费用+财务费用)(X8)采用K-均值聚类算法,将上市公司分为5类,并计算每类公司当年的总利润平均增长率每类公司当年的总利润平均增长率=(该类公司当年的总利润平均值-该类公司上年的总利润平均值)/该类公司上年的总利润平均值。每类公司当年的总利润平均值=(该类别中所有公司当年利润之和)/该类别的公司数量案例分析及计算第7章

1.获取2015年所有公司股票的财务指标数据importpandasaspdimportnumpyasnpdata=pd.read_excel('财务指标数据.xlsx')data2=data.iloc[:,[0,2,3,4,5,6,7,8,9]]案例分析及计算第7章

2.对财务指标数据进行清洗#去掉小于0的指标值和nan值data2=data2[data2>0]data2=data2.dropna()3.对财务指标数据进行异常值处理#数据转化为Numpy数组的形式,同时每个大于其均值8倍的指标视为异常值,并删掉data2=data2.valuesforiinrange(1,9):data2=data2[data2[:,i]<8*np.mean(data2[:,i]),:]案例分析及计算第7章

4.选择“计算机”行业所有上市公司的数据(本步骤可以通过内连接关联获取)从预处理过的财务指标数据中选择申万行业分类表中“计算机”行业所有上市公司的数据。其处理过程分两步。(1)获取申万行业分类表中“计算机”行业所有上市公司的股票代码。

dta=pd.read_excel('申万行业分类.xlsx')

#申万行业分类表中“计算机”行业所有上市公司股票代码

stkcd=dta.loc[dta['行业名称'].values=='计算机','股票代码'].values案例分析及计算第7章

4.选择“计算机”行业所有上市公司的数据执行算法如下:Step1:获取预处理过的财务指标数据data2中的所有代码,s=data2[:,0]。Step2:s循环地与申万行业分类表中“计算机”行业所有上市公司股票代码stkcd做存在性判断。Step3:得到满足判断条件的逻辑数组I,以I作为逻辑索引,取data2表中的元素即可。s=data2[:,0]I=s==stkcd[0]foriinrange(1,len(stkcd)):I1=s==stkcd[i]I=I|I1ddata=data2[I,:]#申万行业分类表中“计算机”行业所有上市公司股票代码对应的财务数据#提取申万行业分类表中“计算机”行业所有上市公司股票码对应的财务指标数据X,用来做主成分分析。X=ddata[:,1:](2)从预处理过的财务指标数据中选择满足条件的数据。案例分析及计算第7章

5.对指标数据X做标准化处理#这里采用极差法进行标准化。fromsklearn.preprocessingimportMinMaxScalerscaler=MinMaxScaler()scaler.fit(X)X=scaler.transform(X)6.对标准化后的X做主成分分析fromsklearn.decompositionimportPCApca=PCA(n_components=0.95)#累计贡献率为95%Y=pca.fit_transform(X)#提取的主成分tzxl=ponents_#返回特征向量gxl=pca.explained_variance_ratio_#返回主成分方差百分比(贡献率)#对主成分Y做标准化处理(极差法)scaler=MinMaxScaler()scaler.fit(Y)Y=scaler.transform(Y)案例分析及计算第7章

Y1=0.3583×X1+0.3777×X2+0.4025×X3+0.4337×X4+0.375×X5+0.2696×X6+0.3205×X7+0.2508×X8Y2=0.3593×X1+0.1897×X2+0.1434×X4+0.4053×X4−0.3458×X5−0.658×X6−0.2331×X7−0.2076×X8Y3=0.0673×X1+0.0213×X2−0.0006×X3+0.32×X4−0.3328×X5+0.6801×X6−0.4713×X7−0.3118×X8Y1-综合盈利能力因子;Y2-产品竞争力因子;Y3-管理能力因子案例分析及计算第7章

7.K-均值聚类分析fromsklearn.clusterimportKMeansmodel=KMeans(n_clusters=5,random_state=0,max_iter=1000)model.fit(Y)c=model.labels_#类标签center=model.cluster_centers_#聚类中心center=pd.DataFrame(center)center.columns=['Y1','Y2','Y3']案例分析及计算第7章

7.K-均值聚类分析Fs=pd.Series(c,index=ddata[:,0])Fs=Fs.sort_values()co=pd.read_excel('公司基本信息表.xlsx')co1=pd.Series(co['Stknme'].values,index=co['Stkcd'].values)foriinrange(5):

q=co1[Fs[Fs==i].index]

q=pd.DataFrame(q)

q.to_excel('c'+str(i)+'.xlsx')类别股票代码0科远股份、合众思壮、易联众、初灵信息、数码科技、御银股份、长亮科技、新国都、安硕信息、汇金股份、北信源、创业软件、华平股份、久其软件、华力创通、银之杰、方直科技、美亚柏科、榕基软件、东方通、英飞拓、新北洋、旋极信息、中威电子、科大讯飞、迪威迅、威创股份、新开普、立思辰、任子行、辉煌科技、天玑科技、远光软件1运达科技、朗玛信息、华铭智能、东方国信、捷成股份、兆日科技、二三四五、康拓红外、联络互动、思维列控、拓尔思、东方网力、世纪瑞尔2深科技、中科金财、太极股份、常山北明、浩丰科技、润和软件、航天长峰、高伟达、证通电子、川大智胜、宝信软件、南天信息、皖通科技、金财互联、四方精创、神州泰岳、万达信息、云赛智联、索菱股份、飞利信、方正科技、京天利、同有科技、汉鼎宇佑、创意信息、达实智能、数字政通、达华智能、千方科技、紫光股份、汉邦高科、易华录、石基信息、荣之联、中远海科、天源迪科、华胜天成、海兰信、朗科科技、东软集团、荣科科技、同方股份、赛为智能、南威软件、*ST中安3博彦科技、中科创达、久远银海、金桥信息、华东电脑、华宇软件、蓝盾股份、浙大网新、浪潮软件、真视通、捷顺科技、航天信息、金证股份、银信科技、浪潮信息、信息发展、飞天诚信、佳都科技、聚龙股份、卫士通、信雅达、神州信息、广电运通、浩云科技、新大陆、中科曙光、东华软件、神思电子、卫宁健康、恒华科技、汉得信息4赢时胜、广联达、超图软件、用友网络、恒生电子、绿盟科技、四维图新、启明星辰案例分析及计算第7章

8.计算每类公司2015年总利润平均值增长率rd=pd.read_excel('利润数据.xlsx')r_c=[]#预定义每个类别总利润平均增长率forninrange(5):#获得第n类股票代码列表cn=list(Fs[Fs==n].index)#预定义第n类股票2014年和2015年的总利润值r1_n=0r2_n=0#循环地对第n类中的每个股票进行计算fortincn:#第n类股票中第t只股票I1=rd['Accper'].values=='2014-12-31'I2=rd['Accper'].values=='2015-12-31'I3=rd['Stkcd'].values==tindex1=I1&I3index2=I2&I3

#第n类股票中第t只股票2014年的利润值r1=rd.loc[index1,'B002000101'].values#第n类股票中第t只股票2015年的利润值r2=rd.loc[index2,'B002000101'].valuesiflen(r1)>0:r1_n=r1_n+r1iflen(r2)>0:r2_n=r2_n+r2#第n类股票2015年的总利润平均值p2=r2_n/len(cn)#第n类股票2014年的总利润平均值p1=r1_n/len(cn)#将总利润平均增长率添加到r_c中r_c.append((p2-p1)/p1)#将每个类别的总利润平均增长率添加到聚类中心后面列r_c=np.arr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论