财政收入影响因素分析

2023-11-17

目录

1.数据

2.代码

3.补充


1.数据

百度网盘链接

链接:https://pan.baidu.com/s/10I5FRbqSv0MGJ56SvmSTAg?pwd=1234
提取码:1234

2.代码

#-*- coding: utf-8 -*-

# 代码6-1

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))  # 保留两位小数



# 代码6-2

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



# 代码6-3

# 绘制热力图
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import rcParams

# 设置中文字体
rcParams["font.sans-serif"] = "SimHei"
plt.subplots(figsize=(10, 10)) # 设置画面大小 
sns.heatmap(corr, annot=True, vmax=1, square=True, cmap="Blues") 
plt.title('相关性热力图')
plt.show()
plt.close()
#-*- coding: utf-8 -*-

# 代码6-4

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'  # 输出的数据文件
data = data.iloc[:,0:13]
new_reg_data = data.iloc[:, mask]  # 返回相关系数非零的数据
new_reg_data.to_csv(outputfile)  # 存储数据
print('输出数据的维度为:',new_reg_data.shape)  # 查看输出数据的维度
#-*- coding: utf-8 -*-

# 代码6-5

import sys
sys.path.append('./code')  # 设置路径
import numpy as np
import pandas as pd
# from GM11 import GM11  # 引入自编的灰色预测函数
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、首项、方差比、小残差概率

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].values)[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,:])  # 预测结果展示



# 代码6-6

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.iloc[0:-2,:].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].values  # 属性数据
y_train = data_train['y'].values  # 标签数据

linearsvr = LinearSVR()  # 调用LinearSVR()函数
linearsvr.fit(x_train,y_train)
x = ((data[feature] - data_mean[feature])/data_std[feature]).values  # 预测,并还原结果。
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()

3.补充

如果报错:ImportError: cannot import name 'comb'

pip install scipy==1.2.1 --user -i  https://pypi.tuna.tsinghua.edu.cn/simple/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

财政收入影响因素分析 的相关文章

  • 从终端调用时 uvicorn 不工作

    我尝试通过 pip3 在系统上安装 uvicorn 这有效 但是我无法从命令行运行相同的命令 有关如何解决此问题的任何指示 Requirement already satisfied uvicorn in home vhawk19 loca
  • cv2.face.mindistancepredictcollector() 错误

    我已经安装了带有额外模块的 opencv 3 1 0 但是当我尝试使用 gt gt gt s cv2 face MinDistancePredictCollector 它返回一个错误 Traceback most recent call l
  • Python 可以使用单独的媒体播放器打开 mp3 文件吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以开一个mp3Python 中的文件 可以使用Popen 我并不是要在程序中运行它 我的意思是作为媒体播放器中的一个单独窗口或其
  • Accel 无法在 gedit 3 插件中工作

    我试图为 Gedit 3 编写一个使用 GObject 自省的小插件 下面显示的代码的相关部分只是为了建立一个环境 然后我可以将函数放入按钮的回调中 但是 该按钮的加速器不起作用 这段代码有什么问题 我正在使用教程here http www
  • Pygame 玩家精灵没有出现

    我一直在为学校计算机课做这个项目 但无法让玩家精灵出现 有人可以帮忙吗 当我运行主游戏循环时 除了玩家精灵之外 所有内容都正确显示 它应该由于箭头输入而在屏幕上移动并受到重力的影响 当我删除图像并仅使用对象类和矩形时 该代码也有效 impo
  • 将列表传递给 PyCrypto 中的 AES 密钥生成器

    我尝试使用 Pycrypto 生成 AES 密钥 但收到以下错误 类型错误 列表 不支持缓冲区接口 对于以下声明 aescipher AES new mykey AES MODE ECB mykey 属于类型list并包含 18854347
  • ValueError:在 R 中使用 keras 模型时在用户代码中

    我正在尝试使用 R 在 R 中运行一维 CNNkeras包裹 我正在使用以下代码 library MASS library keras Create some data data Boston data lt Boston create a
  • 如何使用泛型类型的构造函数

    如何使用 python 泛型类型的构造函数 T typing TypeVar T class MyClass typing Generic T def init self initialValue typing Iterable self
  • 在 Ubuntu 上使用 Python 获取显示器分辨率

    对于 Ubuntu win32api 中是否有与 GetSystemMetrics 相当的代码 我需要获取显示器的宽度和高度 以像素为单位 我可以建议一些可以使用的方法 不过我还没有使用过 xlib 版本 1 xlib Python 程序的
  • 将 csv 文件按多列拆分为 panda 数据框

    我有一个包含多列的 tsv 文件 有 10 多列 但对我来说重要的列是名称为 user name shift id url id 的列 我想创建一个数据框 首先根据用户名分隔整个 csv 文件 即只有具有相同用户名的行才会分组在一起 从该块
  • 将数据框列打包到 pandas 中列出

    我需要将 pandas DataFrame 列打包到包含列表的一列中 例子 For gt gt gt df a b c 0 81 88 1 1 42 7 23 2 8 37 63 3 18 22 20 制作列表栏 list col 0 81
  • 在 (i)python 脚本中从 jupyter 内核获取输出

    我想从单个 ipython 会话中打开多个内核 在这些内核上运行代码 然后收集结果 但我不知道如何收集结果 甚至不知道如何查看 stdout stderr 我怎样才能做这些事情呢 到目前为止我所得到的 我已经使用如下代码管理了前两个步骤 打
  • 在 Docker 容器内运行时,如何自动在 API 路由文件中进行 FASTAPI 拾取更改?

    我通过 docker 运行 FastApi 在 docker compose 中创建一个名为 ingestion data 的服务 我的 Dockerfile FROM tiangolo uvicorn gunicorn fastapi p
  • 多线程写入文件

    前几天刚开始使用 python 对多线程的整个概念还很陌生 我在多线程时写入文件时遇到问题 如果我按照常规方式执行此操作 它会不断覆盖正在写入的内容 使用 5 个线程写入文件的正确方法是什么 不降低性能的最佳方法是在所有线程之间使用队列 每
  • 仅对某些行的不同大小的两个 pandas 数据帧的列进行求和

    我有两个 pandas 数据框 如下所示 df1 n column1 0 5 0 0 0 1 6 0 0 0 2 7 0 0 0 3 8 0 0 0 4 9 0 0 0 5 10 0 0 0 df2 n column2 0 6 0 1 0
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • 避免在列表理解中计算相同的表达式两次[重复]

    这个问题在这里已经有答案了 我在列表理解中使用一个函数和一个 if 函数 new list f x for x in old list if f x 0 令我恼火的是这个表达f x 在每个循环中计算两次 有没有办法以更清洁的方式做到这一点
  • 使用 Pandas 和 Group By 绘制堆叠直方图

    我正在使用如下所示的数据集 Gender Height Width Male 23 4 4 4 Female 45 4 4 5 我想可视化高度和宽度的堆叠直方图 我希望每个图有两个堆叠的直方图 每个性别一个 这是文档中的堆叠直方图 如果存在
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • Python请求401错误但url在浏览器中打开

    我正在尝试从这个位置提取 json https www nseindia com api option chain indices symbol BANKNIFTY https www nseindia com api option cha

随机推荐

  • SSM框架整合layui之实现登录功能

    SSM框架整合layui之实现登录功能 代码 UserService接口 UserServiceImpl实现类 SUserMapper接口 SUserMapper xml SystemController login jsp 代码 User
  • 缓存淘汰算法 —— LFU-Aging(Java实现)

    Java实现 用HashMap保存关系 key值 命中次数与上次命中时间 当需要淘汰某个key值时 调用map remove key import java util public class LFUAgingMap
  • 决策树之ID3的matlab实现

    森林内的两条分叉路 我选择了人迹罕见的一条 从此一切变得不一样 佛洛斯特Robert Frost 目录 一 决策树介绍 1 1 相关概念 1 2 图形表示 1 3 规则表示 二 决策树的信息计算 三 ID3相关介绍 3 1 ID3算法概述
  • 超参数和验证集

    感知机是神经网络的基础 对于形式上完全相同的感知机 模型参数不同 可以实现不同的运算 因此 可以通过训练学习模型参数来形成不同的功能 这也是人工神经网络具有强大学习能力的基础 例如下图这个简单得感知机来说 模型参数取不同的值 就实现了不同的
  • 与Android对接注册接口的session会话取值为null问题

    与Android对接注册接口的session会话取值为null问题 问题 最近在改造一个springboot项目时在后端写好登录接口后 Android调用登录成功后 调用其他接口时发现获取session为null 经过swagger一番测试
  • 一次prime1靶场红队渗透实战,从主机发现到Linux内核漏洞提权

    前言 相比于如DVWA pikachu等靶场 完整系统的靶场更突出一个 无目的性 和 复杂性 就好似一个密室逃脱游戏 存在着离谱的漏洞也存在着奇怪的提示 但是真实的渗透测试就是一个无目的的过程 当你在迷宫中走一遭 那么当你下一次遇见复杂的路
  • 1361: [蓝桥杯2018初赛]乘积尾零

    蓝桥杯2018省赛A组第3题 题目链接http oj ecustacm cn problem php id 1361 思路 找出2 5的个数 取最小的即可 include
  • Redis五大数据类型使用——String

    1 String 字符串 添加 查询 追加 获取长度 判断是否存在的操作 C Users 12559 gt redis cli exe 启动redis 127 0 0 1 6379 gt set name kobe 插入一个key为 nam
  • [附源码]java毕业设计高校学生疫情防控信息管理系统

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • 【JavaWeb】Thymeleaf的简介与使用

    Thmeleaf MVC 为什么需要MVC 我们之前在书城项目第二阶段做登录的时候 曾经提出过优化登录失败后的处理 虽然说可以实现在登录失败之后跳转回到登录页面 并且展示失败信息 但是代码实在是太恶心了 根本没法维护 所以我们需要将视图展示
  • 【转】深度强化学习的加速方法

    原文地址 https www matools com blog 190533310 Accelerated methods for deep reinforcement learning 论文解读 深度强化学习一直以来都以智能体训练时间长
  • openGauss学习笔记-07 openGauss 语法

    文章目录 openGauss学习笔记 07 openGauss 语法 7 1 帮助 7 2 SQL语句格式 7 3 SQL语法 ABORT ALTER AUDIT POLICY ALTER DATA SOURCE ALTER DATABAS
  • Android实现图片点击放大

    第一步 查看大图 implementation com github SherlockGougou BigImageViewPager v4 6 1 1 第二步 在图片点击事件里调用 ImagePreview getInstance 上下文
  • 【mybatis】【mybatisPlus】

    springboot 下 mybatis mybatisPlus Mybatis的作用 配置数据源和mybatis的配置 Mybatis的作用 Mybatis就是帮助程序员将数据存取到数据库里面 MyBatis 是一个半自动化的ORM框架
  • 使用Java socket简单模拟HTTP服务器

    1 HTTP server 接收client端的http请求并将同级目录的root 返回 package httpDemo import java io InputStream import java io OutputStream imp
  • Electron 入门学习案例(electron 初体验)

    Electron 入门学习案例 electron 是桌面端的一个框架 可以把 html js css 封装成为一个 exe 或者 其他平台的应用程序 很好的实现了跨平台 并且开发效率很快 初始化环境 初始化 npm 环境使用命令npm in
  • 学习大数据spark——心得体会

    总结与体会 1 项目总结 本次项目实现了Spark 单机模式Python版的安装 介绍了与Spark编程有关的一些基本概念 特别对RDD的创建 转换和行动操作做了比较详细的说明 对从RDD 到DataFrame的实现进 行了案例训练 包括
  • PCB走线宽度和走过的电流对照表

    1 PCB走线宽度和走过的电流对照表 一般线路板厂家以OZ表示铜箔厚度 1OZ的厚度表示将1OZ重量的铜均匀铺在1平方英尺面积上达到的铜箔厚度 约为0 035mm 所以35um 50um 70um 对应的以oz为计量单位的厚度为1OZ 1
  • 解决SQL case when then else 在查询结果不存在时不生效的问题

    今天遇到一个问题 SQL 下的case when then else语句在查询结果不存在时不生效 今天解决了 顺便记录一下 为了方便的演示 先建个表Users Id Name Gender 1 白子画 0 2 花千骨 1 3 梅长苏 0 4
  • 财政收入影响因素分析

    目录 1 数据 2 代码 3 补充 1 数据 百度网盘链接 链接 https pan baidu com s 10I5FRbqSv0MGJ56SvmSTAg pwd 1234 提取码 1234 2 代码 coding utf 8 代码6 1