Python金融数据分析与应用课件 第9章 基于K均值聚类的上市公司财务数据分析_第1页
Python金融数据分析与应用课件 第9章 基于K均值聚类的上市公司财务数据分析_第2页
Python金融数据分析与应用课件 第9章 基于K均值聚类的上市公司财务数据分析_第3页
Python金融数据分析与应用课件 第9章 基于K均值聚类的上市公司财务数据分析_第4页
Python金融数据分析与应用课件 第9章 基于K均值聚类的上市公司财务数据分析_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第9章基于K均值聚类的上市公司财务数据分析Python金融数据分析与应用(微课版)目录CONTENTS上市公司财务概述9.1数据说明与预处理9.2财务数据的描述性分析与可视化9.3基于财务指标的K均值聚类与评价9.4案例报告--基于K均值聚类的上市公司盈利能力分析9.59.1上市公司财务概述9.1上市公司财务概述上市公司是指在证券交易所上市交易的公司,其财务数据是投资者、金融数据分析师和决策者进行投资和经营决策的重要参考上市公司财务数据主要包括财务报表、财务指标和财务比率等内容,通过对这些数据进行分析,可以帮助我们更好地理解公司的经营状况和财务健康度财务报表通常包括资产负债表、利润表和现金流量表资产负债表反映了公司在特定日期的资产、负债和所有者权益情况利润表展示了公司在特定时期内的营业收入、成本和盈利情况现金流量表则记录了公司在特定时期内的现金流入和流出情况财务指标和财务比率是评估上市公司财务状况的重要指标比如,盈利能力指标包括净利润率、毛利率和营业利润率等偿债能力指标包括资产负债率、速动比率和利息保障倍数等投资价值评估的指标包括市盈率、市净率和股息率等9.2数据说明与预处理9.2.1数据说明9.2数据说明与预处理选取了在上海证券交易所上市的2272家公司的财务数据从资产负债表、利润表、现金流量表分别选取了部分指标,用于反映上市公司的基本财务状况指标指标数量说明资产负债表资产总计、负债合计、所有者权益合计3利润表营业收入、营业成本、营业利润、净利润4现金流量表经营活动产生的现金流量净额、投资活动产生的现金流量净额、筹资活动产生的现金流量净额3更名为现金流量净额_经营、现金流量净额_投资、现金流量净额_筹资9.2.2数据预处理读取数据后,对数据进行缺失值统计,发现营业收入、营业成本、现金流量净额_筹资分别存在74个、76个、5个缺失值因为缺失规模较小,所以将其直接删除为了消除量纲的影响,事先对数据进行标准化处理删除原始数据中的证券代码和证券简称,仅保留10个财务数据最终用于进一步分析的数据包含2191条记录、10个变量#数据预处理#查看各列缺失值情况missing_values=data.isnull().sum()print(missing_values)data_cleaned=data.dropna()#删除缺失值df=data_cleaned.drop(columns=['证券代码','证券简称'])#数据标准化scaler=StandardScaler()df_scaled=pd.DataFrame(scaler.fit_transform(df),columns=df.columns)print(df_scaled.shape)#查看处理后的数据维度9.2数据说明与预处理9.3财务数据的描述性分析与可视化9.3.1财务数据的基本统计特征9.3财务数据的描述性分析与可视化可以通过“df.describe()”来输出数值型数据的统计摘要不同公司的财务指标存在很大的差异。例如,营业收入最小值约为1.4万元,但最大值达到了3.2千亿元9.3.2财务数据的核密度估计对于连续变量,通常可以用直方图或箱线图来展示其值的分布情况。因为异常值的存在,本案例的数据运用这两种方法展示的效果都不令人满意核密度估计(KernelDensityEstimation,KDE)是一种用于估计概率密度函数的非参数方法,它通过对数据进行平滑处理,生成一个连续的概率密度函数,来反映数据的分布情况在直方图无法准确反映数据分布的情况下,核密度估计可以提供更加连续和平滑的数据分布曲线,能更好地展示数据的特征。#列出要绘制的指标和对应的颜色、线型indicators={'资产负债表指标':[('资产总计','red','-'),('负债合计','blue','--'),('所有者权益合计','green','-.')],'利润表指标':[('营业收入','red','-'),('营业成本','blue','--'),('营业利润','green','-.'),('净利润','purple',':')],'现金流量表指标':[('现金流量净额_经营','red','-'),('现金流量净额_投资','blue','--'),('现金流量净额_筹资','green','-.')]}#创建3个子图fig,axs=plt.subplots(3,1,figsize=(20,12))#使用循环绘制每个子图fori,(title,data)inenumerate(indicators.items()):axs[i].set_title(title)forindicator,color,linestyleindata:sns.kdeplot(df[indicator],ax=axs[i],label=indicator,linestyle=linestyle,color=color)axs[i].set_xlabel('')axs[i].legend()plt.show()9.3财务数据的描述性分析与可视化9.3.2财务数据的核密度估计资产负债表、利润表指标分布呈现右偏态,说明数据中存在较大的极端值或异常值现金流量表的3个财务指标分布较为对称从波动情况来看,所有者权益合计、净利润、现金流量净额_筹资在同类指标中有相对大的波动,而资产总计、营业收入、现金流量净额_经营与同类指标相比相对稳定9.3财务数据的描述性分析与可视化9.3.3财务数据的相关性分析#计算相关系数corr=df_scaled.corr()#将相关系数矩阵四舍五入到三位小数corr=corr.round(3)#定义一个格式化函数,用于控制注释的小数位数defformat_annot(x):return'{:.3f}'.format(x)#绘制热力图sns.heatmap(corr,annot=True,cmap='YlGnBu',fmt=".3f")plt.show()各个财务指标之间存在较强的相关性例如,营业收入除了与营业成本呈线性关系之外,与资产总计、所有者权益合计、现金流量净额_投资等也有密切关系9.3财务数据的描述性分析与可视化9.4基于财务指标的K均值聚类与评价9.4基于财务指标的K均值聚类与评价9.4.1K值确定#寻找最佳聚类数目silhouette_scores=[]forn_clustersinrange(3,11):kmeans=KMeans(n_clusters=n_clusters,n_init=5,random_state=123)cluster_labels=kmeans.fit_predict(df_scaled)silhouette_avg=silhouette_score(df_scaled,cluster_labels)silhouette_scores.append(silhouette_avg)#绘制轮廓系数随聚类数目变化的折线图plt.plot(range(3,11),silhouette_scores,marker='o')plt.xlabel('K')plt.ylabel('轮廓系数')plt.show()设置K值在3~10范围内变换,记录相应聚类解的轮廓系数并绘制折线图聚为3类时有最大的轮廓系数,因此确定K=39.4基于财务指标的K均值聚类与评价9.4.2K均值聚类与效果评价#执行K均值聚类kmeans=KMeans(n_clusters=3,random_state=123,n_init=10)cluster_labels=kmeans.fit_predict(df_scaled)cluster_centers=kmeans.cluster_centers_silhouette=silhouette_score(df_scaled,cluster_labels)#将聚类中心转化为DataFramecluster_centers_df=pd.DataFrame(cluster_centers,columns=df_scaled.columns)cluster_centers_df.index=['类别0','类别1','类别2']print(cluster_centers_df.round(3))cluster_counts=pd.Series(cluster_labels).value_counts().reset_index()print(cluster_counts)print('轮廓系数:',silhouette.round(3))绝大部分公司属于类别0,少量公司属于类别1和类别2通过聚类中心,可以识别3类公司的财务特征该聚类解的轮廓系数为0.956,聚类效果比较理想9.4.3K均值聚类与效果评价a=FactorAnalyzer(n_factors=2,rotation='varimax')fa.fit(df_scaled)#因子模型拟合eigenvalues=fa.get_eigenvalues()[0]#获取累计贡献率cvr=np.cumsum(eigenvalues/np.sum(eigenvalues))print(np.around(cvr,decimals=3))print('因子载荷:')print(fa.loadings_.round(3))factors_scores=fa.transform(df_scaled)#计算因子得分#绘制聚类效果图markers=['^','o','s']#定义不同形状的标记fori,markerinzip(range(3),markers):cluster=factors_scores[cluster_labels==i]plt.scatter(cluster[:,0],cluster[:,1],marker=marker,label=f'类别{i}')plt.xlabel('因子1')plt.ylabel('因子2')plt.legend()plt.show()为了直观展示聚类效果,先对数据进行因子分析,前两个公因子的累计贡献率为0.915,使用两个公因子已经足够反映数据绝大部分信息提取两个公因子,计算因子得分,以因子得分代替原始数据,绘制不同类别的样本点在平面直角坐标系中的分布情况,可以看到3个类别得到了较好的区分9.4基于财务指标的K均值聚类与评价9.5案例报告——基于K均值聚类的上市公司盈利能力分析案例报告——基于K均值聚类的上市公司盈利能力分析9.5.1背景介绍充分挖掘和利用大量的财务数据进行盈利能力分析,对于更好地了解上市公司的财务状况、进行风险评估和制定决策具有重要意义。大量的财务数据可能包含着复杂的内在结构和模式,传统方法很难全面、深入地挖掘这些信息,导致对公司盈利能力的分析可能不够准确和全面。基于K均值聚类并按照财务指标对公司进行分类,可以揭示不同公司的差异与相似性,识别出具有相似盈利能力表现的公司群组。这样的结果能够帮助决策者更深入地了解公司的财务表现,为更好地评估公司的风险水平和盈利潜力,有针对性地制定风险管理策略、投资与经营决策提供参考意见。案例报告——基于K均值聚类的上市公司盈利能力分析9.5.2数据说明本案例选取了在上海证券交易所上市的2272家公司的财务数据,其中包括证券代码、证券简称、资产总计、营业收入、营业成本、净利润、现金流量净额_经营等12个指标在数据预处理阶段,发现部分指标存在缺失值,由于缺失值数量较少,直接将其删除为了消除量纲的影响,对数据进行了标准化处理删除了原始数据中的证券代码和证券简称,仅保留了10个财务指标数据。最终,用于后续分析的数据包括2191条记录、10个变量证券代码证券简称营业收入营业成本营业利润净利润600000.SSE浦发银行NaNNaN3.18E+102.86E+10600004.SSE白云机场4.61E+093.67E+093.89E+082.91E+08600006.SSE东风汽车9.17E+098.74E+095.77E+074.16E+07600007.SSE中国国贸3.95E+091.66E+091.67E+091.26E+09600008.SSE首创环保1.41E+109.29E+092.13E+091.70E+09资产总计负债合计所有者权益合计现金流量净额_经营现金流量净额_投资现金流量净额_筹资8.81E+128.08E+127.24E+111.09E+11-3.35E+10-2.63E+112.68E+109.08E+091.77E+101.90E+09-4.48E+08-1.24E+091.85E+101.01E+108.44E+09-4.13E+087.15E+07-2.03E+081.29E+103.18E+099.70E+091.92E+09-6.48E+07-1.29E+091.07E+116.70E+104.03E+101.95E+09-3.92E+091.07E+09上市公司财务数据示例案例报告——基于K均值聚类的上市公司盈利能力分析9.5.3上市公司财务指标的描述性分析(1)上市公司财务指标的基本统计特征上市公司10个财务指标的基本统计特征统计量营业收入营业成本营业利润净利润资产总计count2.19E+032.19E+032.19E+032.19E+032.19E+03mean1.74E+101.44E+101.26E+091.00E+093.13E+10std1.19E+119.91E+108.85E+096.61E+091.47E+11min1.39E+051.01E+05-8.54E+09-8.61E+091.38E+0825%6.19E+083.82E+082.32E+072.01E+072.23E+0950%1.77E+091.22E+091.29E+081.12E+084.72E+0975%5.82E+094.22E+094.88E+084.13E+081.46E+10max3.21E+122.71E+122.53E+111.80E+112.85E+12统计量负债合计所有者权益合计现金流量净额_经营现金流量净额_投资现金流量净额_筹资count2.19E+032.19E+032.19E+032.19E+032.19E+03mean1.83E+101.29E+101.55E+09-1.42E+09-1.96E+08std9.44E+106.25E+101.43E+109.58E+096.54E+09min8.44E+06-6.65E+09-8.24E+10-2.56E+11-1.47E+1125%5.92E+081.43E+09-2.63E+07-5.52E+08-1.98E+0850%1.82E+092.78E+091.18E+08-1.66E+08-2.17E+0775%6.87E+097.20E+095.23E+08-1.68E+071.72E+08max2.13E+121.63E+124.57E+116.05E+091.01E+11营业利润、净利润、所有者权益合计3个指标的最小值为负,中位数为正,说明存在亏损严重的企业,拉低了整体的利润水平。现金流量相关的2个指标的平均值与中位数都为负,表明大多数上市公司在投资与筹资活动中都处于现金流出的状态,这可能意味着大多数公司在运营过程中面临着资金紧张的问题。案例报告——基于K均值聚类的上市公司盈利能力分析9.5.3上市公司财务指标的描述性分析(2)上市公司财务指标的分布状况资产负债表和利润表的相关指标分布呈现右偏态,表明数据中存在较大的极端值或异常值。现金流量表的指标分布较为对称。就波动情况而言,所有者权益合计、净利润以及现金流量净额_筹资在同类指标中波动较大,而资产总计、营业收入以及现金流量净额_经营相对稳定。这种波动可能受到公司业务特性和市场环境等因素的影响。案例报告——基于K均值聚类的上市公司盈利能力分析9.5.3上市公司财务指标的描述性分析(3)上市公司财务指标的相关性分析这些财务指标间存在较强的相关性。例如,除了现金流量净额_筹资外,营业收入与其余8个变量的相关性都在70%以上。营业收入与营业成本,营业利润与净利润相关系数接近1,说明它们之间存在极强的线性关系。案例报告——基于K均值聚类的上市公司盈利能力分析9.5.4上市公司财务指标的聚类分析根据轮廓系数,确定聚类数目为3,此时轮廓系数为0.956,说明聚类效果比较理想。对10个财务指标进行因子分析,提取两个公因子。以公因子代替原始数据,绘制3个类别的样本点在平面的分布情况,可以看到,不同类别得到了较好的区分。案例报告——基于K均值聚类的上市公司盈利能力分析9.5.4上市公司财务指标的聚类分析属于类别0的公司有2171家,占据了绝大多数。这类公司在经营活动中投入较少,但有着较为活跃的投资与筹资行为,其盈利能力与可持续发展能力可能较弱。属于类别1的公司有4家,占据了极小部分。这类公司的经营活动非常活跃,能够有效地产生现金流。这可能代表公司的业务模式健康,有较强的盈利能力。属于类别2的公司有16家,占据了较小部分。这类公司在除负债合计指标之外的指标上都

温馨提示

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

评论

0/150

提交评论