代码改变世界人工智能人工智能/模式识别/机器学习精华专题

2020年高教社杯全国大学生数学建模:中小微企业的信贷决策

2020-09-11  本文已影响0人  AI信仰者

C题 中小微企业的信贷决策

在实际中,由于中小微企业规模相对较小,也缺少抵押资产,因此银行通常是依据信贷政策、企业的交易票据信息和上下游企业的影响力,向实力强、供求关系稳定的企业提供贷款,并可以对信誉高、信贷风险小的企业给予利率优惠。银行首先根据中小微企业的实力、信誉对其信贷风险做出评估,然后依据信贷风险等因素来确定是否放贷及贷款额度、利率和期限等信贷策略。
某银行对确定要放贷企业的贷款额度为10100万元;年利率为4%15%;贷款期限为1年。附件1~3分别给出了123家有信贷记录企业的相关数据、302家无信贷记录企业的相关数据和贷款利率与客户流失率关系的2019年统计数据。该银行请你们团队根据实际和附件中的数据信息,通过建立数学模型研究对中小微企业的信贷策略,主要解决下列问题:
(1) 对附件1中123家企业的信贷风险进行量化分析,给出该银行在年度信贷总额固定时对这些企业的信贷策略。

分析:根据123家有信贷记录企业的相关数据结合银行贷款年利率与客户流失率关系的2019年统计数据,对这123家企业进行分类,可参考的算法有kmeans聚类算法、knn分类算法,具体代码我会之后给出,请持续关注我。

求解每种风险的最大化收益:

def get_income():
    risk = 'risk.csv'
    risk_data = pd.read_csv(risk, sep='\t')
    income_a = []
    income_b = []
    income_c = []
    for index, one in risk_data.iterrows():
        percent = getattr(one, '贷款年利率')
        A_ls = getattr(one, '信誉评级A')
        B_ls = getattr(one, '信誉评级B')
        C_ls = getattr(one, '信誉评级C')
        for money in range(10, 101, 1):
            income_a.append([money, percent, A_ls, money * percent * (1-A_ls)])
            income_b.append([money, percent, B_ls, money * percent * (1-B_ls)])
            income_c.append([money, percent, C_ls, money * percent * (1-C_ls)])
    writeCsv(income_a, 'income_a.csv')
    writeCsv(income_b, 'income_b.csv')
    writeCsv(income_c, 'income_c.csv')

对123家公司的6种信誉进行评级,并对贷款年利率和信誉评级进行聚类,得到6个簇,分别对应到123家公司的6种信誉评级,具体代码如下:

def buildData():
    company123 = 'company123.csv'
    risk = 'risk.csv'
    risk_data = pd.read_csv(risk, sep='\t')
    company123_d = pd.read_csv(company123, sep='\t')
    for index, one in company123_d.iterrows():
        level = getattr(one, '信誉评级')
        isor = getattr(one, '是否违约')
        if level == 'A':
            one[5] = 1
        elif level == 'B' and isor == '否':
            one[5] = 2
        elif level == 'B' and isor == '是':
            one[5] = 3
        elif level == 'C' and isor == '否':
            one[5] = 4
        elif level == 'C' and isor == '是':
            one[5] = 5
        else:
            one[5] = 6

    kms1 = KMeans(n_clusters=6)

    risk_datay = kms1.fit_predict(risk_data.as_matrix())
    risk_data['类别'] = risk_datay.tolist()
    print(risk_datay.tolist())
    risk_data.to_csv('risk_data.csv', index=False)

    merge = pd.merge(company123_d, risk_data, on='类别')
    merge.to_csv('第一题结果.csv', index=False)

(2) 在问题1的基础上,对附件2中302家企业的信贷风险进行量化分析,并给出该银行在年度信贷总额为1亿元时对这些企业的信贷策略。

分析:对于无信贷记录的企业,只能从银行贷款年利率与客户流失率关系去评估,综合所有可能性去找到最佳的贷款年利率,适合的算法有聚类算法kmeans,将不同的贷款年利率产生的客户流失率进行聚类,找到最佳的簇。

(3) 企业的生产经营和经济效益可能会受到一些突发因素影响,而且突发因素往往对不同行业、不同类别的企业会有不同的影响。综合考虑附件2中各企业的信贷风险和可能的突发因素(例如:新冠病毒疫情)对各企业的影响,给出该银行在年度信贷总额为1亿元时的信贷调整策略。

分析:对于无信贷记录的企业,只能从银行贷款年利率与客户流失率关系去评估,信贷风险和可能的突发因素发生时,银行对企业的贷款利率应该下调,以面对不良率的提升。此题应该结合每个突发因素对不同行业的企业的影响,以新冠病毒疫情为例,主要影响的是旅游业、餐饮、影视等行业,对于这些行业的企业应该收紧房贷水平。量化的思路可以综合参考国民经济大数据。

具体代码和具体思路我会之后给出,请持续关注我。
如需此题代码和思路,代码80,思路80,共160,请加我qq
837216129

附件1 123家有信贷记录企业的相关数据
附件2 302家无信贷记录企业的相关数据
附件3 银行贷款年利率与客户流失率关系的2019年统计数据

附件中数据说明:
(1) 进项发票:企业进货(购买产品)时销售方为其开具的发票。
(2) 销项发票:企业销售产品时为购货方开具的发票。
(3) 有效发票:为正常的交易活动开具的发票。
(4) 作废发票:在为交易活动开具发票后,因故取消了该项交易,使发票作废。
(5) 负数发票:在为交易活动开具发票后,企业已入账记税,之后购方因故发生退货并退款,此时,需开具的负数发票。
(6) 信誉评级:银行内部根据企业的实际情况人工评定的,银行对信誉评级为D的企业原则上不予放贷。
(7) 客户流失率:因为贷款利率等因素银行失去潜在客户的比率。

上一篇下一篇

猜你喜欢

热点阅读