1、栏目编辑:梁丽雯 E-mail:liven_2023年第9期7373Research|技术应用A银行是全国首家获批由多家城市信用社联合组建的全国性城市商业银行,其经营区域长期在A省范围内。截至2019年,A银行已经拥有466家支行网点,分布在21个城市。A银行总行财务部门对支行网点的现场财务管理督导工作存在极大的难度。在疫情流行期间,A银行总行财务督查部门发现原来依托现场检查获得检查信息的方式不再可行,因此开始研究如何利用Python等信息处理工具,在非现场环境下对全部网点机构的经费使用数据进行分析比对,以更经济、更高效的方式识别出存在风险的机构。一、A银行大数据分析与财务检查工作现状(一)大
2、数据分析工作现状及问题在大数据时代,包括A银行在内的许多企业都使用Excel、SQL、Python等信息化工具处理工作。A银行目前使用SQL对各个业务系统数据库进行运行维护,日常则以Excel作为财务统计、财务检查的主要工具。虽然Excel和SQL是当前广泛使用的信息化工具,但其和其他的数据分析工具相比,还存在一些局限性。这两类工具不能处理大规模的数据、缺乏数据可视化等功能,这也可能限制A银行在数据分析方面的发展。(二)财务检查工作状况及现有问题A银行在日常运营中,不断加强财务检查工作,以规范网点的财务会计操作,保障经济的持续稳定运行。A银行的财务检查工作包含多种手段,通过现场与非现场检查的方
3、式,对网点的财务会计操作进行分析、评估和报告,以保障银行的财务安全和经营稳定性。银行网点财务检查环节中的Python应用 徽商银行董刚摘要:针对2020年疫情流行期间A银行总行财务督查部门无法依托现场检查获得检查信息的情况,文章研究如何通过大数据分析手段,利用Python等信息处理工具对全部网点机构的经费使用数据进行分析比对,以更经济、高效的方式识别存在风险的机构。借助A银行自身的Python应用方案设计思路,文章提出使用极差极值法、风险值法、逻辑回归法3种统计方法结合Python编程语言构建分析模型的方案,并对应用效果进行预估。关键词:财务检查;数据分析;Python作者简介:董刚(1986
4、-),男,安徽六安人,工商管理硕士,中级会计师、中级经济师,研究方向:数据标准化与财务信息化。收稿日期:2023-06-21栏目编辑:梁丽雯 E-mail:liven_2023年第9期7474Research|技术应用A银行财务检查团队在承担确保银行运营合规、风险控制以及金融安全等重要职责的同时,也存在检查人员较少、时间紧促、工作量大等一系列问题,这给财务检查工作带来了巨大的挑战。首先,A银行的检查人员数量相对较少,难以覆盖所有网点,尤其是省外地区的分支行。团队不能对所有网点进行足够的检查,有些地方可能会被忽略,从而引发潜在的风险。其次,检查时间很紧促。由于检查人员无法满足所有网点的检查需求,
5、A银行财务检查团队不得不将检查时间缩短,尽力在有限的时间内完成尽可能多的检查工作,这会影响对某些问题的深入挖掘。最后,A银行的网点分布范围较广,因而工作量巨大。在有限的时间内,检查人员不仅需要对所有网点进行检查,而且要确保检查全面、细致以及准确。因此,A银行检查团队亟须采用更先进的信息化手段来提高银行的检查效率和能力。(三)财务会计数据库建设状况财务和会计数据库在A银行的运营过程中扮演着至关重要的角色。为提高A银行的财务管理效率,以及更好地掌控经费使用情况,A银行已经建立了全行范围内的报账系统,可以将所有支行和网点的经费报账工作整合在一起。通过这种方式,可以对半结构化、结构化和非结构化数据的信
6、息进行规范化处理,整合成完整的财务会计数据库,可帮助银行更好地管理财务经费数据。二、应用大数据分析的必要性(一)提高效率与降低成本大数据分析手段可以通过提高经济效益、降低成本和提高检查效率等方式提升银行网点的财务经费情况检查效率。银行网点的财务经费情况检查分为现场检查和非现场检查两种方式。其中,非现场检查主要是指检查人员依托A银行已经成熟的财务报账系统平台,对票据影像及录入的关键信息进行比对。在此环节中,采用大数据分析手段能够批量化处理这种形式化的比对工作,从而使检查的账务信息量级远超之前的人工比对阶段。通过大数据分析,可提高分支行财务运营的工作效率和经济效益,减少成本支出。同时,大数据统计分
7、析能够充分利用数据的潜在价值,为财务检查的方案设置、组织工作、结果反馈提供科学依据。(二)提高数据可视化大数据分析可以提高数据的可视化程度。A银行的经费账务具有标准化属性字段信息,这必须运用大数据分析来整合数据的各个子项,以提升可视化效果。在系统层面对字段和项目进行校对,可以从海量的数据明细中快速定位具体的业务,从而为后续的现场检查确定方向。此外,通过对A银行财务系统中具有相同特征字段属性的分支机构经费账务信息进行归类整理,增强数据信息的可视化程度,有助于识别各个项目之间的关联状况,并展现分支机构经费使用情况的图像。(三)展现系统风险大数据分析能够揭示系统性风险。财务检查工作的目的是发现隐藏的
8、操作风险,将风险损失降低到最低。在财务检查工作中,大数据分析可通过跨表比对,扩大风险识别范围。利用大数据技术处理结构化数据,可以展现其价值密度,特别是一些原先单笔比对无法发现的经费账务,在通过数据之间的系统性关联后,隐藏的操作风险将被揭示。(四)提高精细化管理能力大数据分析能够提高精细化管理能力。在财务检查工作中,利用大数据分析技术可以深入挖掘和分析复杂而重要的信息,帮助管理者制定更加准确和精细的决策方案。例如,在银行网点的财务检查中,大数据分析可以发现账务信息中的异常情况,从而识别潜在的风险,并基于这些信息进行决策,如制定风险防范策略等。同时,大数据分析可用于识别分支行经费财务方面的合规风险
9、和道德风险,成为银行管理者任免栏目编辑:梁丽雯 E-mail:liven_2023年第9期7575Research|技术应用和奖惩的依据之一。因此,大数据分析在提高精细决策能力方面具有不可替代的作用。三、Python应用方案设计思路(一)整体思路本方案设计的目标是通过一系列实施步骤和分析方法,将大数据分析应用到A银行财务检查分析环节中。具体步骤:将财务报账系统中的明细数据归集到数据仓库,建立数据采集平台并进行分组和逻辑校验,利用Python工具进行数据清洗、分析和建立模型,定位高风险的经费数据组。(二)具体步骤1.数据归集要将财务报账系统中的明细数据归集到数据仓库,包括机构号、报账机构所在地区
10、、记账人名称及员工号、报销人及员工号、发票日期、报销金额、费用科目、服务与物品名称、单价、数量、服务商、服务商所在地区等字段。此环节需要对数据的来源和采集进行明确,确保有效、正确的数据能够被纳入到归集范围。2.建立数据采集平台在采集数据时需要根据具体分析要求,对数据仓库中的财务报账明细数据、分支机构经营状况数据、第三方工商企业信息数据等进行采集。3.分组如果以机构号为主属性,需要对不同的机构进行分组,并明确数据集与数据组的概念,以减少因差异化而对数据集造成的偏离度影响。数据集是更大的数据范围,是为满足检查任务设定的多个数据组的集合而定义的,也是一个数据模型所能容纳的最大数据范围,如在财务报账系
11、统中,机构A在一年内的业务招待费数据属于一个数据组,而全行在一年内的业务招待费数据则属于一个数据集。数据组是指具有共同属性的历史经费数据(如业务招待费),按照报账机构、报账人员或报销人员进行分组,并包含在设定的时间范围内的所有数据。这样,就可以从整体上了解某个机构、某个报账人员或某个报销人员的“业务招待费”报账行为是否存在异常。4.确定待检查项确定待检查费用科目,不同费用的处理存在不同特征,需要进行区分。例如,本方案以“业务招待费”为例,对其进行详细的探索和分析。5.数据库逻辑校验需要对数据库进行逻辑校验,以确定数据的准确性。例如,可以确定校验逻辑,“一个月/连续7天内,同一发票开立单位对A行
12、统一分支机构多次提供同一产品属性的发票N张”“一个月/连续7天内,同一发票开立单位对A行统一分支机构多次提供金额相同的发票N张”“连续7天内,出现同一报销人员进行同一属性的报销行为N次”,能够对于单条或多条异常数据进行定位。6.Python模型设计及分析利用Python工具进行模型设计、数据清洗、模型建立、模型评估,并使用该模型查找出高风险的经费数据组。其中,数据清洗和数据分析可以方便地使用Python进行处理,比如对缺失值进行填充、对异常值进行处理等。同时,Python工具可以完成对数据进行回归分析、对数据进行时间序列分析等工作,并实现对异常数据组的定位。(三)分析方法及模型设计本方案使用以
13、下3种方法进行分析。1.极差极值法极差极值法可以对单条数据的异常情况进行筛查。通过使用Python工具查询某一“业务招待费”数据组中,期间费用值最大的数据,从而查找出单条数据的异常情况。假设该“业务招待费”数据组为一个字典类型的变量,其中包含多个键值对,每个键值对表示一个费用项及其对应的期间费用值。第一步,可以使用Python栏目编辑:梁丽雯 E-mail:liven_2023年第9期7676Research|技术应用的内置函数max()和items()方法来查找期间费用值最大的数据;第二步,计算最大值与第二大值间的差值,以及最大值与最小值差值的比率;第三步,比较各组中的比率是否超出预设的阈值
14、。该模型将最大值与第二大值之间的差值与最大值与最小值之间的差值进行比较,如果比率大于一个设定的阈值,则判断最大值数据异常。该阈值可以根据实际情况进行设定。如果最大值数据异常,输出最大值对应的键和值;如果没有异常数据,则输出相应的提示信息。以下是Python的程序代码:#假设业务招待费数据是以下字典类型的变量biz_data=餐费:A,住宿费:B1,交通费:C,礼品费:D,其他费:E#计算最大值、最小值、第二大值max_cost=max(biz_data.items(),key=lambda x:x1)#返回(礼品费,3000),即最大值max_key=max_cost0#礼品费是最大值对应的键
15、max_value=max_cost1#3000是最大值对应的值biz_data.pop(max_key)#弹出最大值对应的键值对second_cost=max(biz_data.items(),key=lambda x:x1)#返回(住宿费,B2),即第二大值min_cost=min(biz_data.items(),key=lambda x:x1)#返回(交通费,c),即最小值#计算极差和极值比率diff_value=max_value-second_cost1#计算最大值与第二大值之间的差值rate1=diff_value/max_value#计算最大值与第二大值差值的比率rate2=(
16、max_value-min_cost1)/max_value#计算最大值与最小值的差值比率#判断是否异常if rate1 rate2:print(最大值数据异常,业务招待费中差值比率最大的数据是,max_key,max_value)else:print(业务招待费中没有异常数据)2.风险值法根据风险值法,使用资本资产定价模型来找出特定机构的费用报销数据风险值。具体做法是,将特定机构报销某经费项目的风险值计算出来,计算公式如下:风险值=(单个机构“业务招待费”费用率-全行“业务招待费”费用率)/(数据集“业务招待费”费用率-全行“业务招待费”费用率)。这样一来,可以判断每个机构的偏离程度,从而重
17、点关注风险值较高的经费数据组。以下是Python的程序代码:import pandas as pd#读取数据,假设业务招待费和规模性指标数据在同一个DataFrame中data=pd.read_csv(data.csv)#计算全行的业务招待费费用率total_bd_cost_rate=data业务招待费.sum()/data规模性指标.sum()#计算单个机构的业务招待费费用率和风险值data业务招待费费用率=data业务招待费/data规模性指标data风险值=(data业务招待费费用率-total_bd_cost_rate)/(data业务招待费费用率.mean()-total_bd_co
18、st_rate)#输出结果,按照风险值降序排列data=data.sor t _va lues(by=风险值,ascending=False)print(data)其中,data.csv是包含“业务招待费”和规模性指标数据的csv文件,程序会自动读取该文件并计算每个机构的“业务招待费”费用率和风险值,并按照风栏目编辑:梁丽雯 E-mail:liven_2023年第9期7777Research|技术应用险值降序排列输出结果。3.逻辑回归法逻辑回归法可以运用历史数据来预测未来的数据。在本方案中,利用逻辑回归模型来找出最佳的业务指标参数及对应的权数,并使用历史数据进行验证。将各机构的对应业务指标代入
19、其中,得出每个机构的“业务招待费”理论值。将“业务招待费”实际值除以“业务招待费”理论值,得出相对系数,从而定位风险最高的经费数据组。以下是Python的程序代码:Import pandas as pdfrom sklearn.linear_model import LogisticRegression#读取数据,假设业务指标和业务招待费数据在同一个DataFrame中data=pd.read_csv(data.csv)#将业务指标和业务招待费分开x=data.iloc:,1:-1#业务指标y=data.iloc:,-1#业务招待费#使用逻辑回归模型进行拟合model=LogisticRegr
20、ession()model.fit(x,y)#获取各业务指标的权重系数weights=model.coef_0cols=x.columns#计算各业务指标权重系数之和total_weight=sum(weights)#计算各机构的业务招待费理论值和相对系数data业务招待费理论值=data.apply(lambda row:sum(row1:-1*weights)/total_weight,axis=1)data相对系数=data业务招待费/data业务招待费理论值#输出结果,按照相对系数降序排列data=data.sort_values(by=相对系数,ascending=False)pri
21、nt(data)其中,data.csv是包含业务指标和“业务招待费”数据的csv文件,程序会自动读取该文件并使用逻辑回归模型拟合数据,得出各业务指标的权重系数,计算各机构的“业务招待费”理论值和相对系数,并按照相对系数降序排列输出结果。(四)应用效果预估在进行账务分析时,对于3种分析方法需要重点关注的是,风险值法和逻辑回归法可以从整体上找出高风险的经费数据组,而极差极值法可以检查单条数据是否异常。笔者认为,通过对大量的实际数据进行分析后,使用Python模型进行大数据分析可以显著提高银行网点财务检查分析的效率和精度,并大幅提升发现异常情况的能力。此外,大数据分析还可以发现业务流程中存在的问题和
22、瓶颈,并提出优化建议,提高分支行财务报账工作的合规性。需要注意的是,通过信息化工具来进行账务分析,只是定位问题方向、收集部分信息证据,不能完全代替现场检查对于具体问题的识别。四、结论与建议通过数据分析和Python模型设计,可以展现系统性风险,即全行范围内的经费使用情况,而不仅仅是单个分支机构的情况。这有助于银行管理层更加全面地了解全行范围内的经费使用情况,及时发现和解决系统性问题,提高银行的整体风险控制能力。同时,该方法增强了财务检查的效率和精度,降低成本,提高数据可视性和系统性风险控制能力,为银行的可持续发展提供更好的保障。在大数据背景下,A银行必须在财务检查工作中积极开拓创新,根据信息技
23、术的发展变化,结合自身的实际情况,不断强化大数据分析技术在会计工作实务中的应用,以提高分析整个银行数据的效率和精度,为银行的持续创新和发展提供坚实的基础。FTT栏目编辑:梁丽雯 E-mail:liven_2023年第9期7878Research|技术应用参考文献:1陈建丰,张靖.银行大数据应用与信息化建设研究J.现代财务与会计,2017(2):17-20.2刘强.Python在银行数据分析中的应用研究J.现代经济信息,2018(12):184-185.3宋万红,李亚,刘冠男.面向大数据的银行财务数据分析系统研究与设计J.现代计算机(专业版),2018(10):97-100.4吴沸,洪杨,张宇.
24、基于大数据分析的银行风险管理研究J.金融理论与实践,2018(2):68-73.5洪雷.利用Python实现银行网点财务数据分析J.现代金融,2019(2):30-33.6李福荣,李媛,李云.基于机器学习的银行电子商务支付风险识别研究J.中南财经政法大学学报,2019(2):34-46.7郑尊山.数据分析在银行经营管理中的应用研究J.现代商贸工业,2019(10):40-42.8郭建华,王秋寒.基于大数据分析的银行风险控制研究及应用J.信息化建设,2020(10):44-45.9郑栋,谷争辉,唐家豪.基于Python与Hadoop的银行大数据分析研究J.科技资讯,2021(16):25-26.
25、10曹胜,刘斌.基于大数据的银行贷款风险管理研究J.安徽商贸职业技术学院学报,2021(1):46-49.征稿启事金融科技时代 是国内金融信息化主导期刊之一,创刊以来一直致力于推动国内金融信息化建设,主要刊登金融信息化理念、技术、应用、管理、经验、动态等方面的文章,并组织业界的交流活动等。为了充分展现金融信息化的现状与成就,加强金融机构之间的信息化建设交流与合作,推动金融信息化建设,金融科技时代特向全国各金融机构征集有关文章。相关的征稿事项如下:一、近期组稿重点(一)新技术、新热点在金融行业的应用及其对金融业的影响,如RPA,区块链,大数据,人工智能,“互联网+”,移动支付,物联网,生物识别,
26、云计算,5G,虚拟技术等;(二)金融科技创新与金融监管;(三)数据中心机房建设、异地灾难备份及数据存储;(四)金融信息化建设经验和运维管理(结合相关实践);(五)金融IT标准化建设;(六)安全防范及信息科技风险管理;(七)新形势下(数据大集中后及客户对金融服务的更高要求)信息科技建设存在的问题、对策与建议;(八)科技与金融业务融合发展;(九)金融科技体系建设、科技文化建设等;(十)金融业电子渠道建设及渠道整合;(十一)新的支付手段及支付清算的发展;(十二)金融科技自主创新与IT外包,等等。二、来稿要求(一)来稿字数在3 000字以上,务必观点鲜明、数据准确,力求图文并茂,以实际工作经验探讨为佳;(二)文末附上单位全称、姓名、联系方式及通信地址,以便告知录用情况(初审周期约为15个工作日)和邮寄样刊;(三)来稿务必未经正式发表,切勿一稿多投,若论文受到省、部级以上基金项目支持,请注明基金名称和项目编号;(四)来稿统一发至。联系人:梁编辑 020-87514525金融科技时代杂志社