01案例 - 财政收入影响因素分析及预测模型

news2025/7/14 18:06:12

01案例 - 财政收入影响因素分析及预测模型

案例背景

在我国现行的分税制财政管理体制下,地方财政收人不仅是国家财政收入的重要组成部分,而且具有其相对独立的构成内容。如何有效的利用地方财政收入,合理的分配,来促进地方的发展,提高市民的收入和生活质量是每个地方政府需要考虑的首要问题。因此,对地方财政收人进行预测,不仅是必要的,而且也是可能的。科学、合理地预测地方财政收人,对于克服年度地方预算收支规模确定的随意性和盲目性,正确处理地方财政与经济的相互关系具有十分重要的意义。

  • 某市作为改革开放的前沿城市,其经济发展在全国经济中的地位举足轻重。目前,该市在财政收入规模、结构等方面与北京、上海、深圳等城市仍有一定差距,存在不断完善的空间。本案例旨在通过研究,发现影响该市目前以及未来地方财源建设的因素,并对其进行深入分析,提出对该市地方财源优化的具体建议,供政府决策参考,同时为其他经济发展较快的城市提供借鉴。
  • 考虑到数据的可得性,本案例所用的财政收入分为地方一般预算收入和政府性基金收入。地方一般预算收入包括:(1)税收收入,主要包括企业所得税和地方所得税中中央和地方共享的40%,地方享有的 25%的增值税、营业税、印花税等;(2)非税收入,包括专项收入、行政事业性收费、罚没收入、国有资本经营收入和其他收入等。政府性基金收入是国家通过向社会征收以及出让土地、发行彩票等方式取得收入,并专项用于支持特定基础设施建设和社会事业发展的收入。
  • 由于1994年我国对财政体制进行了重大改革,开始实行分税制财政体制,影响了财政收入相关数据的连续性,在1994年前后不具有可比性。由于没有合适的数学手段来调整这种数据的跃变,仅对1994年及其以后的数据进行分析,本案例所用数据均来自《某市统计年鉴》(1995-2014)。

原始数据样例:

在这里插入图片描述

简单处理数据:

在这里插入图片描述

挖掘目标

  1. 分析、识别影响地方财政收入的关键属性;
  2. 预测2014年和2015年的财政收入。

分析方法

  • 在以往的文献中,大多先建立财政收入与各待定的影响因素之间的多元线性回归模型,运用最小二乘估计方法来估计回归模型的系数,通过系数来检验它们之间的关系,模型的结果对数据的依赖程度很大,并且普通最小二乘估计求得的解往往是局部最优解

  • Lasso是近年来被广泛应用于参数估计和变量选择的方法之一,并且Lasso进行变量选择在确定的条件下已经被证明是一致的。案例选用了Lasso特征选择方法来研究地方财政收入与各因素之间的关系。

总体流程

在这里插入图片描述

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

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

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

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

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

数据探索分析

影响财政收入(y)的因素有很多,通过经济理论对财政收入的解释以及对实践的观察,考虑一些与能源消耗关系密切并且直观上有线性关系的因素,选取以下因素为自变量,分析它们之间的关系。

  • 社会从业人数(x1):就业人数的上升伴随着居民消费水平的提高,从而间接影响财政收入的增加。

  • 在岗职工工资总额(x2):反映的是社会分配情况,主要影响财政收入中的个人所得税、房产税以及潜在消费能力。

  • 社会消费品零售总额(x3):代表社会整体消费情况,是可支配收入在经济生活中的实现。当社会消费品零售总额增长时,表明社会消费意愿强烈,部分程度上会导致财政收入中增值税的增长;同时当消费增长时,也会引起经济系统中其他方面发生变动,最终导致财政收入的增长。

  • 城镇居民人均可支配收入(x4):居民收入越高消费能力越强,同时意味着其工作积极性越高,创造出的财富越多,从而能带来财政收入的更快和持续增长。

  • 城镇居民人均消费性支出(x5):居民在消费商品的过程中会产生各种税费,税费又是调节生产规模的手段之一。在商品经济发达的如今,居民消费的越多,对财政收入的贡献就越大。

  • 年末总人口(x6):在地方经济发展水平既定的条件下,人均地方财政收入与地方人口数呈反比例变化。

  • 全社会固定资产投资额(x7):是建造和购置固定资产的经济活动,即固定资产再生产活动。主要通过投资来促进经济增长,扩大税源,进而拉动财政税收收入整体增长。

  • 地区生产总值(x8):表示地方经济发展水平。一般来讲,政府财政收入来源于即期的地区生产总值。在国家经济政策不变、社会秩序稳定的情况下,地方经济发展水平与地方财政收入之间存在着密切的相关性,越是经济发达的地区,其财政收入的规模就越大。

  • 第一产业产值(x9):取消农业税、实施三农政策,第一产业对财政收入的影响更小。

  • 税收(x10):由于其具有征收的强制性、无偿性和固定性特点,可以为政府履行其职能提供充足的资金来源。因此,各国都将其作为政府财政收入的最重要的收入形式和来源。

  • 居民消费价格指数(x11):反映居民家庭购买的消费品及服务价格水平的变动情况,影响城乡居民的生活支出和国家的财政收入。

  • 第三产业与第二产业产值比(x12):表示产业结构。三次产业生产总值代表国民经济水平,是财政收入的主要影响因素,当产业结构逐步优化时,财政收入也会随之增加。

  • 居民消费水平(x13):在很大程度上受整体经济状况GDP的影响,从而间接影响地方财政收入。

描述分析

对各个属性进行描述性统计分析

代码:

import numpy as np
import pandas as pd

inputfile = '../data/data.csv' # 输入的数据文件
data = pd.read_csv(inputfile) # 读取数据

# 描述性统计分析
description = [data.min(), data.max(), data.mean(), data.std()]  # 依次计算最小值、最大值、均值、标准差
description = pd.DataFrame(description, index = ['Min', 'Max', 'Mean', 'STD']).T  # 将结果存入数据框
print('描述性统计结果:\n',np.round(description, 2))  # 保留两位小数

表1 各个属性的描述性分析

在这里插入图片描述

分析:可见财政收入(y)的均值和标准差分别为618.08和609.25,这说明:第一,某市各年份财政收入存在较大差异。第二,2008年后,某市各年份财政收入大幅上升。

相关分析

采用Person相关系数法求解原始数据的 Person 相关系数矩阵

# 相关性分析
corr = data.corr(method = 'pearson')  # 计算相关系数矩阵
print('相关系数矩阵为:\n',np.round(corr, 2))  # 保留两位小数

表2 变量 Person 相关系数矩阵
在这里插入图片描述

由相关矩阵可以看出居民消费价格指数(x11) 与财政收入的线性关系不显著,而且呈现负相关。其余变量均与财政收入呈现高度的正相关关系。

绘制相关性热力图进一步分析

import matplotlib.pyplot as plt
import seaborn as sns
plt.subplots(figsize=(10, 10)) # 设置画面大小 
sns.heatmap(corr, annot=True, vmax=1, square=True, cmap="Blues") 
plt.title('相关性热力图')
plt.show()
plt.close

在这里插入图片描述

由颜色深浅可以看出各属性除x11与y为负弱相关,其他属性与y强相关

数据预处理

运用Lasso回归方法进行关键属性选取

import numpy as np
import pandas as pd
from sklearn.linear_model import Lasso

inputfile = '../data/data.csv'  # 输入的数据文件
data = pd.read_csv(inputfile)  # 读取数据
lasso = Lasso(1000)  # 调用Lasso()函数,设置λ的值为1000
lasso.fit(data.iloc[:,0:13],data['y'])
print('相关系数为:',np.round(lasso.coef_,5))  # 输出结果,保留五位小数

print('相关系数非零个数为:',np.sum(lasso.coef_ != 0))  # 计算相关系数非零的个数

mask = lasso.coef_ != 0  # 返回一个相关系数是否为零的布尔数组
print('相关系数是否为零:',mask)

outputfile ='../tmp/new_reg_data.csv'  # 输出的数据文件
new_reg_data = data.iloc[:, mask]  # 返回相关系数非零的数据
new_reg_data.to_csv(outputfile)  # 存储数据
print('输出数据的维度为:',new_reg_data.shape)  # 查看输出数据的维度

各个属性的系数,如下表

x1x2x3x4x5x6x7
-0.00010.0000.124-0.0100.0650.0000.317
x8x9x10x11x12x13
0.035-0.0010.0000.0000.000-0.040

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

在岗职工工资总额、年末总人口、税收、居民消费价格指数、第三产业与第二产业产值比等因素的系数为0,即在模型建立的过程中这几个变量被剔除了。由于某市存在流动人口与外来打工人口多的特性,年末总人口并不显著影响某市财政收入;居民消费价格指数与财政收入的相关性太小以致可以忽略;由于农牧业各税在各项税收总额中所占比重过小,而且该市于2005年取消了农业税,其他变量被剔除均有类似于上述的原因。

模型建立

对Lasso 变量选择方法识别的影响财政收入的因素建立灰色预测预测模型, Python及流行的扩展库并没有提供灰色预测功能,因此自行编写灰色预测函数

def GM11(x0): #自定义灰色预测函数
  import numpy as np
  x1 = x0.cumsum() #1-AGO序列
  z1 = (x1[:len(x1)-1] + x1[1:])/2.0 #紧邻均值(MEAN)生成序列
  z1 = z1.reshape((len(z1),1))
  B = np.append(-z1, np.ones_like(z1), axis = 1)
  Yn = x0[1:].reshape((len(x0)-1, 1))
  [[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Yn) #计算参数
  f = lambda k: (x0[0]-b/a)*np.exp(-a*(k-1))-(x0[0]-b/a)*np.exp(-a*(k-2)) #还原值
  delta = np.abs(x0 - np.array([f(i) for i in range(1,len(x0)+1)]))
  C = delta.std()/x0.std()
  P = 1.0*(np.abs(delta - delta.mean()) < 0.6745*x0.std()).sum()/len(x0)
  return f, a, b, x0[0], C, P #返回灰色预测函数、a、b、首项、方差比、小残差概率

构建灰色预测模型并预测

import sys
sys.path.append('../code')  # 设置路径
import numpy as np
import pandas as pd
from GM11 import GM11  # 引入自编的灰色预测函数

inputfile1 = '../tmp/new_reg_data.csv'  # 输入的数据文件
inputfile2 = '../data/data.csv'  # 输入的数据文件
new_reg_data = pd.read_csv(inputfile1)  # 读取经过特征选择后的数据
data = pd.read_csv(inputfile2)  # 读取总的数据
new_reg_data.index = range(1994, 2014)
new_reg_data.loc[2014] = None
new_reg_data.loc[2015] = None
l = ['x1', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x13']
for i in l:
  f = GM11(new_reg_data.loc[range(1994, 2014),i].as_matrix())[0]
  new_reg_data.loc[2014,i] = f(len(new_reg_data)-1)  # 2014年预测结果
  new_reg_data.loc[2015,i] = f(len(new_reg_data))  # 2015年预测结果
  new_reg_data[i] = new_reg_data[i].round(2)  # 保留两位小数
outputfile = '../tmp/new_reg_data_GM11.xls'  # 灰色预测后保存的路径
y = list(data['y'].values)  # 提取财政收入列,合并至新数据框中
y.extend([np.nan,np.nan])
new_reg_data['y'] = y
new_reg_data.to_excel(outputfile)  # 结果输出
print('预测结果为:\n',new_reg_data.loc[2014:2015,:])  # 预测结果展示

预测结果的精度等级见下表:

变量名2014****预测值2015****预测值预测精度等级
x18142148.28460489.3
x37042.318166.92
x443611.8447792.22
x535046.6338384.22
x685055238627139
x74600.45214.78
x818686.2821474.47
x1344506.4749945.88
构建支持向量回归预测模型
import matplotlib.pyplot as plt
from sklearn.svm import LinearSVR

inputfile = '../tmp/new_reg_data_GM11.xls'  # 灰色预测后保存的路径
data = pd.read_excel(inputfile)  # 读取数据
feature = ['x1', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x13']  # 属性所在列
data_train = data.loc[range(1994,2014)].copy()  # 取2014年前的数据建模
data_mean = data_train.mean()
data_std = data_train.std()
data_train = (data_train - data_mean)/data_std  # 数据标准化
x_train = data_train[feature].as_matrix()  # 属性数据
y_train = data_train['y'].as_matrix()  # 标签数据

linearsvr = LinearSVR()  # 调用LinearSVR()函数
linearsvr.fit(x_train,y_train)
x = ((data[feature] - data_mean[feature])/data_std[feature]).as_matrix()  # 预测,并还原结果。
data['y_pred'] = linearsvr.predict(x) * data_std['y'] + data_mean['y']
outputfile = '../tmp/new_reg_data_GM11_revenue.xls'  # SVR预测后保存的结果
data.to_excel(outputfile)

print('真实值与预测值分别为:\n',data[['y','y_pred']])

fig = data[['y','y_pred']].plot(subplots = True, style=['b-o','r-*'])  # 画出预测结果图
plt.show()

1994年至2015年财政收入的预测值,如表所示:

年份yy_pred年份yy_pred
199464.8737.476376532005408.86463.4257871
199599.7583.977835252006476.72555.1990364
199688.1194.649569022007838.99691.7526587
1997106.07106.4909532008843.14843.4121032
1998137.32151.104187820091107.671088.474868
1999188.14188.1420101399.161380.1211
2000219.91219.529832520111535.141537.555406
2001271.91230.199497620121579.681739.783625
2002269.1219.727322120132088.142086.429911
2003300.55300.591720320142189.279622
2004338.45383.533870220152540.638153

补充:

后验差检验模型精度:

Pc模型精度
>0.95<0.35
>0.80<0.5合格
>0.70<0.65勉强合格
<0.70>0.65不合格

灰色预测法的通用性强,一般的时间序列场合都适用,尤其适用那些规律性差且不清楚数据产生机理的情况。

优缺点:

  • 优点:预测精准度高、模型可检验、参数估计方法简单、对小数据集有很好的预测效果
  • 缺点:对原始数据序列的光滑度要求很高,在原始数据光滑性较差的情况下灰色预测模型的预测精度不高,甚至无法通过检验,

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

支持向量机拥有完善的理论基础和良好的特性,设计分类、回归、聚类、时间序列分析、异常点检测等诸多方面。

优缺点:

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

在这里插入图片描述

模型评估

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

平均绝对误差中值绝对误差可解释方差值R****方值
34.20368117.4157390.99088970.9908781

平均绝对误差与中值绝对误差较小,可解释方差值与R方值十分接近1,表明建立的支持向量回归模型拟合效果优良,可以用于预测财政收入。
归模型评价指标对地方财政收入的预测值进行评价,得到的结果如下表所示。

平均绝对误差中值绝对误差可解释方差值R****方值
34.20368117.4157390.99088970.9908781

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React create-react-app 里配置代理(解决跨域)

配置代理&#xff1a; creact-react-app v5 当然不是v5 下面的方法也适用。 方式一&#xff1a;package.json里配置 其实 cra里给了个简单的配置代理 就是在package.json里加上proxy就行了。 修改时需要 npm start重新运行一下&#xff0c;要不然可能不生效。 proxy只能以 h…

vueday02——使用naive-ui做一个ACM看榜

效果展示&#xff1a; 组件导入 <n-data-table:data"data":columns"column":bordered"true":single-line"false"/> 行数据导入数据结构 {key: 1,index: 2,name: user Name2,passNum:0,// age: 42,college: JiShou University…

Java RSA密钥从RSAPrivateKey和RSAPublicKey对象中,分别提取模和指数

概述&#xff1a; 在Java编程中&#xff0c;我们经常用到如下一段代码来生成RSA公私钥&#xff0c;分别拿到公私钥然后加解密计算&#xff1a; KeyPairGenerator keyPairGen; keyPairGen KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(2048, new S…

竞赛选题 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习YOLO抽烟行为检测 该项目较为新颖&#xff0c;适合作为竞赛课…

C-Net:用于乳腺超声图像分割的具有全局指导和细化残差的级联卷积神经网络

C-Net 期刊分析摘要贡献方法整体框架1. Bidirectional attention guidance network (BAGNet)2. Refinement residual network (RFNet) 实验1. 对比实验2. 消融实验 可借鉴参考 期刊分析 期刊名&#xff1a; Computer Methods and Programs in Biomedicine 期刊信息&#xff1a…

圣树唤歌最强阵容2023,圣树唤歌阵容推荐

无疑圣树唤歌作为一款备受欢迎的手机游戏&#xff0c;其深刻的战斗系统一直以来都受到大家的追捧。在这个虚拟世界中胜利的关键在于组建一支无懈可击的强大队伍&#xff0c;要想成为强者&#xff0c;就必须拥有最强阵容。 关注【娱乐天梯】&#xff0c;获取内部福利号 在本篇攻…

【C++11新特性】右值引用和移动语义(移动构造,移动赋值)

文章目录 前言一、列表初始化&#xff08;不同于初始化列表&#xff09;二、initializer_list三、decltype关键字四、nullptr五、右值引用移动拷贝和移动赋值被编译器识别成将亡值的原因 左值引用和右值引用的场景和价值右值引用的场景move函数 六、关于右值引用的功能和属性问…

【HTML+CSS】零碎知识点

公告滚动条 <!DOCTYPE html> <html><head><title>动态粘性导航栏</title><style>.container {background: #00aeec;overflow: hidden;padding: 20px 0;}.title {float: left;font-size: 20px;font-weight: normal;margin: 0;margin-left:…

23款奔驰C260L升级小柏林音响 15个喇叭 是多了哪两个

22款奔驰C级在音响系统方面也做出了改变&#xff0c;20款奔驰C级的小柏林音响是13喇叭590瓦功率&#xff0c;小柏林音响是多了哪两个喇叭呢&#xff1f;也就是眼镜盒上的两个&#xff0c;在之前的C级车型上&#xff0c;小柏林是没有这两个扬声器的。无论是小柏林还是大柏林&…

凉鞋的 Godot 笔记 201. 第三轮循环:引入变量

201. 第三轮循环&#xff1a;引入变量 在这一篇&#xff0c;我们进行第三轮 编辑-测试 循环。 在之前我们编写了 输出 Hello Godot 的脚本&#xff0c;如下: extends Node# Called when the node enters the scene tree for the first time. func _ready():print("Hell…

MySQL——六、库表操作(下篇)

MySQL 一、INSERT语句二、REPLACE语句三、UPDATE语句四、delete和TRUNCATE语句五、MySQL用户授权1、密码策略2、用户授权和撤销授权 一、INSERT语句 #在表里面插入数据&#xff1a;默认情况下&#xff0c;一次插入操作只插入一行 方式1&#xff1a; INSERT [INTO] 表名 [(colu…

word如何设置页码?教你快速提升文档颜值!

在创建文档时&#xff0c;为了更好地组织内容&#xff0c;页码是一个必不可少的元素。但是很多人不知道word如何设置页码&#xff0c;其实word提供了多种设置页码的方法&#xff0c;以满足不同文档的需求。本文将详细介绍3种设置页码的方法&#xff0c;无论您是初学者还是有经验…

【数据结构】排序--快速排序

目录 一 概念 二 快速排序的实现 1. hoare版本 (1)代码实现 (2)单趟排序图解 (3) 递归实现图解 (4)细节控制 (5)时间复杂度 (6)三数取中优化 2 挖坑法 (1)代码实现 (2)单趟图解 3 前后指针法 (1) 代码实现 (2) 单趟图解 ​编辑4 优化子区间 5 非递归快速排…

零基础Linux_18(进程间通信)共享内存+消息队列+信号量

目录 1. 共享内存 1.1 共享内存概念 1.2 系统函数shmget 1.2.1 key值和ftok 1.2.2 sizeshmflg返回值 1.3 系统调用shmctl 1.4 系统调用shmat和shmdt 1.5 共享内存进程间通信前期代码 1.6 共享内存进程间通信 2. 消息队列(了解) 3. 信号量(了解) 4. 笔试选择题 答案…

git的介绍和安装、常用命令、忽略文件、分支

git介绍和安装 首页功能写完了 ⇢ \dashrightarrow ⇢ 正常应该提交到版本仓库 ⇢ \dashrightarrow ⇢ 大家都能看到这个 ⇢ \dashrightarrow ⇢ 运维应该把现在这个项目部署到测试环境中 ⇢ \dashrightarrow ⇢ 测试开始测试 ⇢ \dashrightarrow ⇢ 客户可以看到目前做的…

137. 只出现一次的数字 II (中等。位运算)

不会做&#xff0c;思路来自官解 对于每一位来说&#xff0c;每个数字只能是 0 或 1&#xff0c;如果所有数字的第 i 位和能被3整除&#xff0c;那么表示只出现一次的这个元素在这一位上为0&#xff0c;反之就是1 class Solution:def singleNumber(self, nums: List[int]) -&g…

java.math.BigDecimal cannot be cast to java.lang.String

1.数据库&#xff1a; oracle 数据类型&#xff1a; NUMBER 2.java代码示例 List<Map<String, String>> list new ArrayList<>(); 错误&#xff1a; String nchangestdrate list.get(i).get(“rate”); 或者 BigDecimal nchangestdrate (BigDecimal)li…

【扩散模型从原理到实战】Chapter2 Hugging Face简介

文章目录 Hugging Face的核心功能介绍Hugging Face开源库Hugging Face开源库Gradio工具介绍参考资料 Hugging Face是机器学习从业者协作和交流的平台&#xff0c;成立于2016年&#xff0c;在纽约和巴黎设有办事处&#xff0c;团队成员来自世界各地&#xff0c;远程办公。 致力于…

程序员凭本事赚钱被没收所得,是否体现了“重刑主义”?

近日&#xff0c;承德程序员翻墙“打工”被罚款一事冲上热搜&#xff0c;热度不减。 1.人们同情该程序员的不幸遭遇&#xff0c;为他鸣不平&#xff1b; 2.包括程序员群体在内的大众关心此事背后的谋生问题&#xff1b; 3.引发了大众对承德执法的反思与质疑&#xff1b; 4.甚至…