Python基于Lasso特征选择、GM算法和SVR回归算法进行财政收入影响因素分析及预测

简介: Python基于Lasso特征选择、GM算法和SVR回归算法进行财政收入影响因素分析及预测

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

image.png

image.png

1.项目背景

随着信息化的发展和科学技术的进步,数据分析与挖掘技术开始得到广泛应用。人们无时无刻不面对着海量的数据,这些海量数据中隐藏着人们所需要的具有决策意义的信息。数据分析与挖掘技术的产生和发展就是帮助人们利用这些数据,并从中发现隐藏的有用的信息。

在此背景下,本项目主要运用数据分析与挖掘技术对市财政收入进行分析,挖掘其中隐藏的运行模式,并对未来两年的财政收入进行预测,希望能够帮助政府合理地控制财政收支,优化财源建设,为制定相关决策提供依据。

2.项目目标

财政收入是指政府为履行其职能、实施公共政策和提供公共物品与服务需要而筹集的一切资金的总和。财政收入表现为政府部门在一定时期内(一般为一个财政年度)所取得的货币收入。财政收入是衡量一国政府财力的重要特征,政府在社会经济活动中提供公共物品和服务的范围和数量,在很大程度上取决于财政收入的充裕情况。

在我国现行的分税制财政管理体制下,地方财政收入不但是国家财政收入的重要组成部分,而且是具有相对独立性的构成内容。如何制定地方财政支出计划,合理分配地方财政收入,促进地方的发展,提高市民的收入和生活质量是每个地方政府需要考虑的首要问题。因此,地方财政收入预测是非常必要的。

考虑到数据的可得性,本项目所用的财政收入分为地方一般预算收入和政府性基金收入。地方一般预算收入包括以下两个部分:

·税收收入。主要包括企业所得税与地方所得税中中央和地方共享的40%,地方享有的25%的增值税印花税等。

·非税收收入。包括专项收入、行政事业性收费、罚没收入、国有资本经营收入和其他收入等。

政府性基金收入是国家通过向社会征收以及出让土地、发行彩票等方式取得收入,并专项用于支持特定基础设施建设和社会事业发展的收入。

由于1994年我国对财政体制进行了重大改革,开始实行分税制财政体制,影响了财政收入相关数据的连续性,所以1994年前后的数据不具有可比性。由于没有合适的方法来调整这种数据的跃变,因此本项目仅对1994年至2013年的数据进行分析(本项目所用数据均来自《统计年鉴》)。

结合财政收入预测的需求分析,本次数据分析建模目标主要有以下两个:

1)分析、识别影响地方财政收入的关键属性。

2)预测2014年和2015年的财政收入。

3.项目过程

众多学者已经对财政收入的影响因素进行了研究,但是他们大多先建立财政收入与各待定的影响因素之间的多元线性回归模型,运用最小二乘估计方法来估计回归模型的系数,通过系数来检验它们之间的关系,模型的结果对数据的依赖程度很大,并且普通最小二乘估计求得的解往往是局部最优解,后续步骤的检验可能就会失去应有的意义。

本项目在已有研究的基础上运用Lasso特征选择方法来研究影响地方财政收入的因素。在Lasso特征选择的基础上,鉴于灰色预测对少量数据预测的优良性能,对单个选定的影响因素建立灰色预测模型,得到它们在2014年及2015年的预测值。由于支持向量回归较强的适用性和容错能力,对历史数据建立训练模型,把灰色预测的数据结果代入训练完成的模型中,充分考虑历史数据信息,可以得到较为准确的预测结果,即2014年和2015年财政收入。

3.1.分析步骤与流程

本项目的总体流程如图所示,主要包括以下步骤:

1)对原始数据进行探索性分析,了解原始属性之间的相关性。

2)利用Lasso特征选择模型提取关键属性。

3)建立单个属性的灰色预测模型以及支持向量回归预测模型。

4)使用支持向量回归预测模型得出2014年至2015年财政收入的预测值。

5)对上述建立的财政收入预测模型进行评价。

image.png

4.数据采集

影响财政收入(y)的因素有很多,在查阅大量文献的基础上,通过经济理论对财政收入的解释以及对实践的观察,考虑一些与能源消耗关系密切并且直观上有线性关系的因素,初步选取以下属性为自变量,分析它们之间的关系。各项属性名称及属性说明如表所示。

属性名称和说明

image.png

image.png

5. 探索数据分析

5.1.描述性统计分析

对各个属性进行描述性统计分析,关键代码如下:

image.png

通过代码清单得到的结果如表所示。其中,财政收入(y)的均值和标准差分别为618.08和609.25,这说明某市各年份财政收入存在较大差异;2008年后,某市各年份财政收入大幅上升。

各个属性的描述性统计

image.png

5.2.相关性分析

采用Pearson相关系数法求解原始数据的Pearson相关系数矩阵,关键代码如下:

求解原始数据的Pearson相关系数矩阵

image.png

对原始数据进行相关分析,得到相关系数矩阵,如表所示。

变量Pearson相关系数矩阵

image.png

image.png

从上表可以看出,居民消费价格指数(x11)与财政收入(y)的线性关系不显著,呈现负相关。其余属性均与财政收入呈现高度的正相关关系,按相关性大小,依次是x3、x4、x5、x7、x8、x10、x13、x2、x9、x1、x6和x12。同时,各属性之间存在着严重的多重共线性,例如,属性x1、x4、x5、x6、x8、x9、x10与除了x11之外的属性均存在严重的共线性;属性x2、x3、x7与除了x11和x12外的其他属性存在着严重的多重共线性;x11与各属性的共线性不明显;x12与除了x2、x3、x7、x11之外的其他属性有严重的共线性;x13与除了x11之外的各属性有严重的共线性。除此之外,x2和x3、x2和x13、x3和x13等多对属性之间存在完全的共线性。

由上述分析可知,选取的各属性除了x11外,其他属性与y的相关性很强,可以用作财政收入预测分析的关键属性,但这些属性之间存在着信息的重复,需要对属性进行进一步筛选。

绘制相关性热力图,关键代码如下: 

绘制相关性热力图

image.png

通过代码清单得到相关性热力图,如图所示,由颜色的深浅可看出各属性除了x11与y为负弱相关外,其他属性与y强相关。

image.png

6.数据预处理

Lasso回归方法属于正则化方法的一种,是压缩估计。它通过构造一个惩罚函数得到一个较为精炼的模型,使得它压缩一些系数,同时设定一些系数为零,保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。

Lasso以缩小特征集(降阶)为思想,是一种收缩估计方法。Lasso方法可以将特征的系数进行压缩并使某些回归系数变为0,可以广泛地应用于模型改进与选择。通过选择惩罚函数,借用Lasso思想和方法实现特征选择的目的。模型选择本质上是寻求模型稀疏表达的过程,而这种过程可以通过优化一个“损失”+“惩罚”的函数问题来完成。

Lasso参数估计定义如式所示。

image.png

其中,λ为非负正则参数,控制着模型的复杂程度,λ越大对特征较多的线性模型的惩罚力度就越大,从而最终获得一个特征较少的模型, image.png 称为惩罚项。调整参数λ的确定可以采用交叉验证法,选取交叉验证误差最小的λ值。最后,按照得到的λ值,用全部数据重新拟合模型即可。

当原始特征中存在多重共线性时,Lasso回归不失为一种很好的处理共线性的方法,它可以有效地对存在多重共线性的特征进行筛选。在机器学习中,面对海量的数据,首先想到的就是降维,争取用尽可能少的数据解决问题,从这层意义上说,用Lasso模型进行特征选择也是一种有效的降维方法。从理论上来说,Lasso对数据类型没有太多限制,可以接受任何类型的数据,而且一般不需要对特征进行标准化处理。

Lasso回归方法的优点是可以弥补最小二乘法和逐步回归局部最优估计的不足,可以很好地进行特征的选择,可以有效地解决各特征之间存在多重共线性的问题。缺点是如果存在一组高度相关的特征时,Lasso回归方法倾向于选择其中的一个特征,而忽视其他所有的特征,这种情况会导致结果的不稳定性。虽然Lasso回归方法存在弊端,但是在合适的场景中还是可以发挥不错的效果的。在财政收入预测中,各原始属性存在着严重的多重共线性,多重共线性问题已成为主要问题,这里采用Lasso回归方法进行特征选取是恰当的。使用Lasso回归方法进行关键属性选取,关键代码如下:

Lasso回归选取关键属性

image.png

通过代码清单得到各个属性的系数,如表所示

image.png

由表可看出,利用Lasso回归方法识别影响财政收入的关键影响因素是社会从业人数(x1)、社会消费品零售总额(x3)、城镇居民人均可支配收入(x4)、城镇居民人均消费性支出(x5)、全社会固定资产投资额(x7)、地区生产总值(x8)、第一产业产值(x9)和居民消费水平(x13)。

7.模型构建

7.1.灰色预测算法

灰色预测法是一种对含有不确定因素的系统进行预测的方法。在建立灰色预测模型之前,需先对原始时间序列进行数据处理,经过数据处理后的时间序列即称为生成列。灰色系统常用的数据处理方式有累加和累减两种。

灰色预测是以灰色模型为基础的,在众多的灰色模型中,GM(1,1)模型最为常用。

image.png

image.png


3)求解微分方程,即可得到预测模型,如式(6-3)所示。

image.png

4)由于GM(1,1)模型得到的是一次累加量,将GM(1,1)模型所得数据 image.png 经过累减还原为 image.png ,即X0的灰色预测模型如式(6-4)所示。

image.png

后验差检验模型精度如表所示。

后验差检验判别参照表

image.png

灰色预测法的通用性较强,一般的时间序列场合都适用,尤其适合那些规律性差且不清楚数据产生机理的情况。灰色预测模型的优点是预测精度高、模型可检验、参数估计方法简单、对小数据集有很好的预测效果;缺点是对原始数据序列的光滑度要求很高,在原始数据列光滑性较差的情况下灰色预测模型的预测精度不高,甚至通不过检验,结果只能放弃使用灰色模型进行预测。

7.2.SVR算法

image.png

image.png

image.png

image.png

再求极大问题(取负号变极小问题)如式(6-11)和式(6-12)所示。

image.png

条件如式(6-13)所示。

image.png

image.png

由于支持向量机拥有完善的理论基础和良好的特性,人们对其进行了广泛的研究和应用,涉及分类、回归、聚类、时间序列分析、异常点检测等诸多方面。具体的研究内容包括统计学习理论基础、各种模型的建立、相应优化算法的改进以及实际应用。支持向量回归也在这些研究中得到了发展和逐步完善,已开展了许多富有成果的研究工作。

相比较于其他方法,支持向量回归的优点是:不仅适用于线性模型,也能很好地抓住数据和特征之间的非线性关系;不需要担心多重共线性问题,可以避免局部极小化问题,提高泛化性能,解决高维问题;虽然不会在过程中直接排除异常点,但会使得由异常点引起的偏差更小。缺点是:计算复杂度高,在面临数据量大的时候,计算耗时长。

7.3.构建财政收入预测模型

依据Lasso回归选取的关键变量构建灰色预测模型,并预测2014年和2015年的财政收入,关键代码如下:

image.png

依据灰色预测的结果构建支持向量回归预测模型,并预测2014年和2015年的财政收入,如代码清单所示。

 构建支持向量回归预测模型

image.png

8.结果分析与模型评估

Lasso回归选取的社会从业人数(x1)、社会消费品零售总额(x3)、城镇居民人均可支配收入(x4)、城镇居民人均消费性支出(x5)、全社会固定资产投资额(x6)、地区生产总值(x7)、第一产业产值(x8)和居民消费水平(x13)属性的2014年及2015年通过建立灰色预测模型得出的预测值,如表所示。

通过灰色预测模型得出的预测值

image.png

将表的预测结果代入地方财政收入建立的支持向量回归预测模型,得到1994年至2015年财政收入的预测值,如表所示,其中y_pred表示预测值。

1994年至2015年财政收入的预测值

image.png

image.png

地方财政收入真实值与预测值的对比图如图所示。

image.png

地方财政收入真实值与预测值对比图表

采用回归模型评价指标对地方财政收入的预测值进行评价,得到的结果如表所示。

 模型评价指标

均方根误差RMSE

均方误差MSE

解释方差得分

R平方得分

58.0185

3366.15

0.99

0.99

由表可以看出,平均绝对误差与中值绝对误差较小,可解释方差值与R方值十分接近1,表明建立的支持向量回归模型拟合效果优良,可以用于预测财政收入。

# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:
 
链接:https://pan.baidu.com/s/18GCu_yMS5aJhiQ2MHDPx6g 
提取码:yig3

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
2月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
2月前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
142 5
|
3月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
204 26
|
3月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
260 3
|
3月前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
376 4
|
3月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
538 4
|
3月前
|
存储 边缘计算 算法
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
|
3月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
218 0
|
3月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于改进型A*算法的机器人路径规划(Python代码实现)
261 0
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
277 0

热门文章

最新文章

推荐镜像

更多