2018年五一杯数学建模B题商业银行人民币贷款规模分配及盈利问题解题全过程文档及程序

2019年五一杯数学建模

B题 商业银行人民币贷款规模分配及盈利问题

原题再现

  商业银行贷款投放的简单模型是:从客户端吸收存款,缴存法定准备金(法定准备金率:大型金融机构15.5%,中小金融机构12%;法定准备金利率1.62%),预留一定比例备付水平(商业银行承担支付结算金融中介作用,满足流动性安全),剩余资金用于贷款投放或其他资产配置。
  对商业银行而言,贷款规模增长受限于其存款规模增长,只有在存款有效增长的情况下银行才有充足资金用于贷款投放。具体来说,某家商业银行在全国存款总额中所占比例相对稳定,每年可增长的存款量受限于社会资金总量的增长情况。从经济指标上来看,社会存款增长与GDP、CPI、工业增加值等宏观经济指标密切相关(附件1为2010-2017宏观经济指标及2018年预测情况)。
  在贷款分配模式上,商业银行过去多采用年初预分配、全年限额管理模式,即年初一次性预分配全年规模至各家分行,年度内不再调增。该模式存在较多弊端,如未考虑全年实际可支配贷款规模、环境变化、需求变化等,效率低、弹性差。目前,商业银行多采用以存定贷、存贷结合、表内外协同、资产负债动态平衡模式,既要努力获取全行最大收益,也要平衡各区域发展差异,调动各单位展业积极性,同时也要对国家重大项目、重点政策、民生工程等倾斜扶持,支持实体经济有效发展。
  现有某中型商业银行A,其各家省级分行近三年存贷款业务发展情况见附件2。请查阅相关文献和资料,在对商业银行经营模式有所掌握,对未来经济、利率、汇率等政策及趋势有充分了解和预判的基础上回答以下问题。
  1. 假设该银行除客户存款外无其他资金来源,且暂不考虑备付水平。请根据附件2商业银行A各项存贷款历史数据及附件1宏观经济指标历史数据,建立数学模型,预测该银行2018年存、贷款增量情况。
  2. 假设该银行除客户存款外无其他资金来源,且暂不考虑备付水平。请根据问题1预测的结果并结合附件3相关数据,建立数学模型,给出2018年商业银行A 各分行贷款规模的分配方案,使得全行增量存贷款利息净收入最大,并将该分配方案填入表1。
  3. 若商业银行A将于2018年5月1日发行500亿规模的15年期商业银行普通债(利率约为5.1%),请结合该条件对问题2进一步优化,暂不考虑备付水平情况下,重新设计商业银行A各分行贷款规模的分配方案,使得全行增量存贷款利息净收入最大,并将该分配方案填入表1。
  4. 为保证每日交易正常进行,各家分行每日需预留一定的备付资金(备付资金不足易引起客户不满,严重的会引起社会恐慌,引发挤兑;预留资金过多,会降低银行盈利水平),以确保最低的备付水平(备付水平=备付资金÷存款余额)。假设每个客户存取款的行为是随机的,请根据附件4各分行2017年每日存取款交易数据,建立数学模型,计算在置信水平99%的情况下,2018年商业银行A各分行日常经营所需最低备付金额,并将结果填入表1。
  5. 在贷款规模分配问题上,为了帮助商业银行A处理好收益与风险、企业经营与国际政策导向,区域化差异与分行公平考核等之间的关系,以期达到双赢或多赢,请对以上模型进行改进,并给出相关建议。
  注:所有数据均为假设数据。
在这里插入图片描述

整体求解过程概述(摘要)

  本文利用支持向量机(svm)回归模型、主成分分析、分位数回归、层次分析法等方法,使用 python 语言对方法进行实现,建立了银行贷款额度分配模型,并引入了收益与风险、企业经营与国际政策导向,区域化差异与分行公平考核对于模型进行优化,最后针对商业银行 A 给出了合理的贷款额度分配方案。
  针对问题一,将季度数据合并为年度数据,对数据特征采用主成分分析进行处理并修复缺失值,利用 svm 模型进行回归预测得到 A 行 2018 年贷款增量。
  针对问题二,对利率和存款进行 svm 回归预测得到 2018 年 A 行各地预测值,然后对贷款值进行分位数回归求得贷款规模的上下限,将利率和存款作为固定参数,贷款规模分配作为自变量,贷款规模上下限和问题 1 求得贷款总额作为约束条件,以利息收入为目标,建立数学规划模型,得到使得全行增量存贷款利息净收入最大的贷款规模分配方案。
  针对问题三,加入普通债所获资金 500 亿,调整贷款总额度和贷款规模上限后使用 python 语言的 scipy 包中的 linprog 线性规划模块求解最优贷款规模分配方案。
  针对问题四,统计各地分行每日的存取款之差发现其规律符合正态分布,求得其均值估计和方差估计。利用 2017 年的各分行存款数额、分布均值和方差,得到 2018 年的各分行存款预测数额、分布均值和方差。利用其对各分行贷款额度分配在 99%置信区间对上下界区间进行预测,下界即每日存款小于取款的差额的最大值,可以将此值看作各分行日常经营所需最低备付金额。
  针对问题五,为了实现收益与风险、企业经营与国际政策导向、区域化差异与分行公平考核的多赢。利用层次分析法赋予这三对因素权重,引入风险系数、地区国际化指数、不公平差异,对三对因素在不同贷款规模分配方案上进行量化,最终得到三对因素收益最大的贷款规模分配方案。

模型假设:

  1.假设 2018 年经济情况平稳发展。
  2.假设城市国际化指数和城市风险系数真实有效。
  3.假设每个客户存取款的行为是随机的;
  4.假设银行普通债能够全部卖出,并在普通债到期日付清本息。
  5.假设按照某地存款量来分配贷款额度是公平的。

问题分析:

  问题一的分析
  第一问中要求预测2018年存、贷款增量情况。筛选出附件1主要指标建立与金融机构人民币各项存款余额差值之间的数学模型,对于2018年金融机构人民币各项存款增量进行预测。题目中给出某家商业银行在全国存款总额中所占比例相对稳定,每年可增长的存款量受限于社会资金总量的增长情况,可以由此建立回归预测模型得出该银行存、贷款增量情况。
  问题二的分析
  第二问要求建立数学模型,给出2018年商业银行A使得全行增量存贷款利息净收入最大时的各分行贷款规模的分配方案。可以考虑根据附件1中2015-2018年短期贷款利率以及附件3的各地区存贷款利率水平数据,使用线性回归方法建立宏观指标与地区平均贷款利率的关系式,得到2015-2018年的综合平均贷款利率。再使用线性回归方法分别建立2015-2017年每个地区的贷款利率与其相对应的综合平均贷款利率的关系,进而得到2018年商业银行A各地区分行贷款规模分配方案。
  问题三的分析
  第三问要求在第二问的基础上追加500亿15年期利率为5.1%的商业银行普通债,重新设计使得全行增量存贷款利息净收入最大时的贷款规模分配方案。考虑到商业银行普通债在期末时才会给客户支付利息,因此只代表商业银行A贷款总规模在第二个问的基础上增加了500亿。所以将总贷款规模加500亿带入第二问的数学模型中,得到使得全行增量存贷款利息净收入最大时新的贷款规模分配方案。
  问题四的分析
  第四问要求考虑备付水平,根据各分行 2017 年每日存取款交易数据建立数学模型,计算在置信水平 99%的情况下,2018 年商业银行 A 各分行日常经营所需最低备付金额。在这里,备付资金主要用于客户取款,不考虑其他用途。因此我们统计各地分行每日的存取款之差,作频率图可发现大多数具有类似正态分布的形状,考虑到用户存取款的行为存在随机性,所以假设每日存取款的额度服从正态分布。根据作图观察分析,我们发现分行存款总额和分行存取款差额的均值、分行存款总额和分行存取款差额的方差都存在相关性。因此本文假设 2018 年的各分行的存取款数额也符合正态分布,以 2017 年的数据为基础,建立回归预测模型对 2018 年各分行存取款数额分布的参数进行预测。根据预测获得的参数构建分布,最终获得置信水平 99%的情况下,2018 年商业银行 A 各分行日常经营所需最低备付金额。
  问题五的分析
  第五问要求在贷款规模分配问题上,为了达到双赢或多赢的目标,考虑收益与风险、企业经营与国际政策导向、区域化差异与分行公平考核等之间的关系,对贷款规模分配模型进行优化,并给出相关建议。考虑到实际问题中,贷款规模分配不只是依据利率水平的高低,而是由许多内外部因素综合影响决定的。因此,我们引入量化指标:风险系数向量、各分行所在地区的国际化指数SBII、总体区域化差异以及各地区公平差异向量,分别建立收益与风险、企业经营与国际政策导向、区域化差异与分行公平考核与贷款规模分配比例向量的函数关系,进而得到商业银行A总体效益与贷款规模分配比例向量的关系式。最终即可计算得到使得商业银行A总体效益最大时的贷款规模分配方案。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:(代码和文档not free)

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

npls=[1,1.25,1.67,1.74,1.74,1.83,1.88,1.84,1.73]
year = [i for i in range(2013, 2022)]

p1 = plt.figure(figsize=(8, 4.944))
p1.add_subplot(111)
bar_width = 0.4  # 设置分组条形的宽度

for x, y in enumerate(npls[0:2], start=2013):
    plt.text(x+0.2, y+0.01, y, ha='left', color="r", alpha=0.7)

for x, y in enumerate(npls[2:8], start=2015):
    plt.text(x+0.08, y+0.028, y, ha='left', color="r", alpha=0.7)

for x, y in enumerate(npls[8:], start=2021):
    plt.text(x, y+0.028, y, ha='left', color="r", alpha=0.7)

plt.plot(year, npls, color='r', marker='o', linestyle='--', alpha=0.7, label='不良贷款率(%)')

plt.ylim(0.9, 2)
plt.ylabel('不良贷款率(%)')

plt.title('2013-2021年我国商业银行不良贷款率变化情况(单位:%)')
plt.xlabel('时间(年)')
plt.legend(loc=2)

plt.show()
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

total_assets = [130.8, 150.94, 175.94, 190.42, 203.41, 232.34, 265.79, 281.29]
growth_rate = [None, 15.4, 16.56, 8.23, 6.82, 14.22, 14.4, 5.83]
growth_rate2 = [15.4, 16.56, 8.23, 6.82, 14.22, 14.4, 5.83]
year = [i for i in range(2014, 2022)]

p1 = plt.figure(figsize=(8, 4.944))
ax1 = p1.add_subplot(111)
bar_width = 0.4  # 设置分组条形的宽度
ax1.bar(year, total_assets, width=bar_width, color='steelblue', alpha=0.7, label='总资产(万亿元)')
for x, y in enumerate(total_assets, start=2014):
    plt.text(x, y + 5, y, ha='center')
for x, y in enumerate(growth_rate2, start=2015):
    plt.text(x, y * 13.2 + 5, y, ha='left', color="r", alpha=0.7)
ax2 = ax1.twinx()
ax2.plot(year, growth_rate, color='r', marker='o', linestyle='--', alpha=0.7, label='增长率(%)')
# plt.ylim(0, 300)
ax1.set_ylim(0, 330)
ax2.set_ylim(0, 25)
ax1.set_ylabel('总资产(万亿元)')
ax2.set_ylabel('增长率(%)')
plt.title('2014-2021年上半年我国商业银行总资产变化情况(单位:万亿元,%)')
plt.xlabel('时间(年)')
ax1.legend(loc=2)
ax2.legend(loc=1)

plt.show()
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/159642.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot Actuator:自定义端点

要在Spring Boot Actuator中实现自定义端点,可以按照以下步骤进行操作: 1.创建一个自定义端点类 该类需要使用Endpoint注解进行标记,并使用Component注解将其作为Spring Bean进行管理。 package com.example.highactuator.point;import lo…

flowable消息事件

一&#xff1a;启动事件 定义消息。 引用消息。 <startEvent id"msgStart" name"消息启动事件" isInterrupting"true"><messageEventDefinition messageRef"myMsgStart"></messageEventDefinition> </startE…

机器学习第6天:线性回归模型正则化

文章目录 机器学习专栏 正则化介绍 岭回归 岭回归成本函数 核心代码 示例 Lasso回归 Lasso回归损失函数 核心代码 弹性网络 弹性网络成本函数 核心代码 结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 正则化介绍 作用&#xff1a;正则化是为了防止模型过拟合…

es使用客户端,“grunt” 不是内部或外部命令,多种解决方法

”grunt“不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 4、问题排查 查看node的安装根目录 npm root -g 在运行grunt -version还是不行 网上找了很多&#xff0c;给出正确解决方案的没几个&#xff0c;所以自己摸索&#xff0c;最后确定了加环境变量的解…

Python实验项目7 :tkinter GUI编程

&#xff08;1&#xff09;利用tkinter 制作界面&#xff0c;效果图如下&#xff1a; from tkinter import * # winTk() for i in range(1,20):Button(width5,height10,bg"black" if i%20 else"white").pack(side"left") win.geometry("8…

Android 屏幕适配

目录 一、为什么要适配 二、几个重要的概念 2.1 屏幕尺寸 2.2 屏幕分辨率 2.3 屏幕像素密度 2.4 屏幕尺寸、分辨率、像素密度三者关系 三、常用单位 3.1 密度无关像素(dp) 3.2 独立比例像素&#xff08;sp&#xff09; 3.3 dp与px的转换 四、解决方案 4.1 今日头条…

Docker之DockerFile解析

DockerFile解析 是什么 Dockerfile是用来构建Docker镜像的文本文件&#xff0c;是由一条条构建镜像所需的指令和参数构成的脚本。 概述 官网 https://docs.docker.com/engine/reference/builder/ 构建三步骤 编写Dockerfile文件 docker build命令构建镜像 docker run依镜像运…

李沐的学习Pytorch环境配置

https://github.com/Miraclelucy/dive_into_deep_learning/tree/main 上面是别人的笔记 可以学一下。 如果没有梯子&#xff0c;按照清华源配置 清华源conda配置 最好下载 1.11版本torch那一套 然后装d2l版本可以装 pip install d2l0.17.6然后可以用 http://localhost:8889/…

DolphinScheduler V3.1.8 海豚调度器【概述、安装、功能介绍、项目运用、邮箱预警设置】轻松拿捏!

概述 Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度开源系统。适用于企业级场景&#xff0c;提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系&#xff0c;并为应…

Diffusion Models CLIP

Introduction to Diffusion Models 生成模型 主要指的是无监督学习中的生成模型&#xff0c;在无监督学习中的主要任务是让机器学习给定的样本&#xff0c;然后生成一些新的东西出来。比如&#xff1a;给机器看一些图片&#xff0c;能够生成一些新的图片出来&#xff0c;给机器…

.locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 随着科技的不断发展&#xff0c;网络空间的威胁也日益增加。其中&#xff0c;.locked勒索病毒作为一种恶意软件&#xff0c;给用户的数据安全带来了极大的威胁。本文91数据恢复将介绍.locked勒索病毒的特点&#xff0c;以及如何有效恢复被它加密的数据文件&a…

Java入门篇 之 多态

本篇碎碎念&#xff1a;个人认为&#xff0c;一切都不是不学习的理由&#xff0c;在如今这个"内卷"的时代&#xff0c;唯有认真学习&#xff0c;掌握知识&#xff0c;才能把握命运 今日份励志文案:你必须拼尽全力&#xff0c;才有资格说运气不好 加油吧&#xff0c;少…

Elasticsearch基础条件查询

条件查询 query&#xff1a;查询 match&#xff1a;匹配 match_all&#xff1a;匹配所有 #第一种 GET /shopping/_search?q名字:张三#第二种 GET /shopping/_search {"query": {"match": {"名字": "张三"}} }#全量查询 match_all G…

MIB 6.1810实验Xv6 and Unix utilities(5)find

难度:moderate Write a simple version of the UNIX find program for xv6: find all the files in a directory tree with a specific name. Your solution should be in the file user/find.c. 题目要求&#xff1a;实现find &#xff0c;即在某个路径中&#xff0c;找出某…

Seaborn 回归(Regression)及矩阵(Matrix)绘图

Seaborn中的回归包括回归拟合曲线图以及回归误差图。Matrix图主要是热度图。 1. 回归及矩阵绘图API概述 seaborn中“回归”绘图函数共3个&#xff1a; lmplot&#xff08;回归统计绘图&#xff09;&#xff1a;figure级regplot函数&#xff0c;绘图同regplot完全相同。(lm指lin…

动态sql行转列

动态sql行转列 介绍案例转之前转之后 注意 介绍 本篇介绍 根据 时间格式化后行转列的案例讲解动态sql案例的初学 案例 --设置一个动态变量 赋予初始值 SET sql NULL;--获取规范化后需要用到的行头列表 SELECT GROUP_CONCAT(CONCAT(--注意1MAX(IF(date ", date, "…

Prometheus+Grafana环境搭建(window)

PrometheusGrafana环境搭建 1&#xff1a;配置Prometheus 1.1: 下载Prometheus安装包 官方下载地址 找到对应的win版本进行下载并解压 1.2 下载Window数据采集 官方下载地址 下载以管理员运行&#xff0c;安装成功后在服务里会出现一个"windows_exporter"采集…

数据库Communications link failure

1.出现错误查询 Error querying , Communications link failure #Error querying database.Cause:com.mysql.cj.jdbc.exceptions.CommunicationsException:Communications link failure The last packet successfully received from the server was 10,016 milliseconds ago. …

LangChain 实现给动物取名字

mkdir langchain-llm-appcd langchain-llm-app # 用vscode 打开当前目录 code .在macOS上通过终端打开Visual Studio Code&#xff08;VS Code&#xff09;&#xff0c;您可以按照以下步骤操作&#xff1a; 安装VS Code&#xff1a;首先&#xff0c;确保您已经在Mac上安装了Vis…

vulnhub靶场—matrix-breakout-2-morpheus靶机

一&#xff0c;实验环境 靶机ip&#xff1a;192.168.150.131攻击机ip&#xff1a;192.168.150.130 二&#xff0c;信息收集 arp-scan -l 扫描网段&#xff0c;寻找靶机ip 使用工具nmap进行端口扫描 nmap -A -T4 -p- 192.168.150.131 通过信息收集发现了靶机有80和81这两个…