R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化

简介: R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化

信用风险建模是金融领域的重要课题,通过建立合理的信用风险模型,可以帮助金融机构更好地评估借款人的信用状况,而有效降低信贷风险点击文末“阅读原文”获取完整代码数据

相关视频

image.png

本文使用了 R 语言中的逻辑回归(logistic)模型,利用国泰安数据库中的103个上市公司的数据进行信用风险建模,其中包括51个正常公司和52个ST公司。在这个数据集中,我们选取了经营活动产生的现金流量净额、净资产收益率、每股收益和每股净资产等指标来分析其对公司是否为ST股票的影响。

研究目的

通过对某股票数据分析,了解经营活动产生的现金流量净额、净资产收益率... 每股收益和每股净资产对股票是否ST的影响。

数据介绍

某年度随机抽取的 102个股票。因变量是否为ST股票(0=非ST,1=ST)。为了能够预测是否为ST,我们采集了下面这些来自当年的指标:经营活动产生的现金流量净额、净资产收益率、每股收益、每股净资产。

我们做完整的逻辑回归分析,包括参数估计、假设检验,以及预测评估和模型评价;

数据分析与模型建立

首先,我们对数据进行了可视化分析,绘制了变量之间的散点图和计算了它们之间的相关系数。从散点图和相关系数可以看出,每股收益和每股净资产呈正相关关系,并且ST股票和非ST股票的4个变量具有显著差异,非ST股票的各项指标要高于ST股票的变量值。接着,我们进行了完整的逻辑回归分析,包括参数估计、假设检验以及预测评估和模型评价。

读取数据后查看前几行数据

6e539f751f5bc0f7949d585cb696e921.png

 head(data)

8b88e1e61722ef60e991f55067b8f52a.png

因变量(是否为ST)

STindex

绘制变量之间的散点图

ea59e03cf77cca757d8d9b0b3fea1dee.png

从上面的图中,我们可以看到各个变量之间的相关关系,其中每股收益和每股净资产呈正相关关系 。

相关系数

197e2e5becd9a5935eefaf341e50f136.png 93f8a1cd774770b1dd8c02f8800936ea.png

可以看到ST股票和非ST股票的4个变量具有显著差异。

非ST股票的各项指标要高于ST股票的变量值。

因此进行逻辑回归模型的分析。

逻辑回归

在逻辑回归分析中,我们将数据集随机抽取2/3作为训练集,然后进行模型拟合和评价。拟合结果显示,经营活动产生的现金流量净额、净资产收益率、每股收益和每股净资产对应的回归系数均达到了统计显著性水平,说明这些指标对股票是否为ST具有显著影响。此外,我们还对模型的预测能力进行了评价,绘制了混淆矩阵和ROC曲线,得到了较高的AUC值,表明模型具有较好的预测效果和识别能力。

随机抽取2/3作为训练集

split <- sample(1:nrow(data),nrow(data)*(2/3))
summary(fit)

7afc75d01b8e4eab4a8b726ccfe283c1.png

从输出结果可以看出 ,回归方程为ST=   1.285e+ 1.532e-10经营活动产生的现金流量净额 +3.023e-01 净资产收益率-2.078e+00每股收益-4.586e-01 股净资产 ,变量和的统计量的估计值分别为1.285e+00、1.532e-10、3.023e-01、-2.078e+00和-4.586e-01 ,每股收益和每股净资产对应的值都比显著性水平0.05小,可得2个偏回归系p数在显著性水平0.05下均显著不为零。因此,可以认为每股收益 、每股净资产  具有显著的影响。进一步地剩余方差的估计值,deviance统计量的估计值为96.716 ,说明,回归方程效果较好。

置信区间是给定自变量值后,由回归方程得到的的流失预测值(实0y际上是的平均值)的置信区间;预测区间是实际值的置信区间,在这里称为预测区间。

可视化混淆矩阵

7ad2a6c92dd43b082a46f942f0c35408.png

22cd791b2f79ad7e56b223553529cb0e.png

点击标题查阅往期内容


数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化

e53454e051d666498ae3912710245cb9.png

可视化ROC曲线

fc9d39f9f4c05737c759c6de4886c1f8.png

performanedict, real ),  "auc" )@y.values[[1]]

d1561908026d10dbe15a357b51482ea4.png

从AUC的值来看,达到了0.8,因此可以认为模型具有较好的预测效果,同时可以看到roc曲线靠近图的左上方,说明模型对客户是否流失具有较好的识别能力,因此该模型可以作为预警系统。然后对模型的残差进行评估。

残差分析

我们进一步对模型进行了残差分析,检验了随机误差项是否独立同分布,并找出了一些离群点。针对发现的异常点,我们进行了剔除处理,并重新建立了模型。重新建立的模型同样进行了混淆矩阵和ROC曲线的评价,结果显示新模型依然具有较好的预测效果和识别能力。

残差分析可以对回归模型的假设条件即随机误差项是否独立同分布进行检验,同时还可以找出离群点。命令语句为plot(lm.1),显示结果如下

c2d17bc83fadbbe3776b87555a3319b7.png

左上图是拟合值与残差的散点图,从图上可以发现,除去第3个离群点外,所有点基本上是随机地分散在纵坐标值为-1和+1的两条平行线之间,这说明随机误差项具有同方差性;左下图是拟合值与残差的标准差的散点图,其意义与上面类似;右上图表明随机误差项是服从正态分布的,其原因是正态Q-Q图近似地可以看成一条直线;右下图的CooK距离图进一步证实第3个观测值是一个离群点,它对回归方程的影响是比较大的,要根据具体问题,讨论出现这一观测值的实际背景。

异常点检测

找到异常点后进行剔除,然后进行建模

e393e91867a3f585db3c665ddca97227.png

混淆矩阵可视化

5eed3998573a67f5d2b653951d1d3648.png

f61e45c008474d3eb17730bbccbc72f3.png

roc曲线


14a1fe172322783ab29421879da6668e.png

performancedict, real ),  "auc" )@y.values[[1]]

799b5c2c81b1975a2b328917e240345a.png

从AUC的值来看,达到了0.8,因此可以认为模型具有较好的预测效果,同时可以看到roc曲线靠近图的左上方,说明模型对客户是否流失具有较好的识别能力,因此该模型可以作为预警系统。然后对模型的残差进行评估。

结论

通过本文的研究,我们建立了逻辑回归模型来分析公司是否为ST股票与其经营活动产生的现金流量净额、净资产收益率、每股收益和每股净资产之间的关系。我们发现,每股收益对股票是否为ST具有较大影响。然而,需要指出的是,ST股票的形成可能受多种因素影响,本研究只是对其中部分因素进行了分析。未来的研究可以进一步扩大样本量,引入更多潜在因素,不断完善信用风险建模方法,以提高模型的预测精度和鲁棒性。

相关文章
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
23天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
40 3
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
6月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
6月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
3月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
3月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
3月前
|
机器学习/深度学习 数据采集
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
上述介绍仅为简要概述,每个模型在实施时都需要仔细调整与优化。为了实现高度精确的预测,模型选择与调参是至关重要的步骤,并且交叉验证是提升模型稳健性的有效途径。在真实世界的房价预测问题中,可能还需要结合地域经济、市场趋势等宏观因素进行综合分析。
69 3
|
6月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)