首页 > 其他分享 >第六章--财政收入影响因素分析及预测

第六章--财政收入影响因素分析及预测

时间:2023-03-04 22:56:44浏览次数:37  
标签:loc -- print 财政收入 import 第六章 new data reg

1. 数据分析

 

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
inputfile = './data.csv'
data = pd.read_csv(inputfile)
describe = data.describe() #describe()函数能算出数据集的八个统计量
print(describe)

 

 

 

 

 

2.相关性分析

 

 

corr = data.corr(method = 'pearson')
pd.options.display.float_format = '{:,.2f}'.format ## 指定小数位数
data.corr()
# print(np.round(corr,2))

 

 

 

 

3.绘制热力图

import matplotlib.pyplot as plt
import seaborn as sns
plt.subplots(figsize=(10,10))
sns.heatmap(corr,annot = True,vmax = 1,square = True,cmap = "Accent")
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.title('相关性热力图')
plt.show()
plt.close

4.Lasso回归

 

from sklearn.linear_model import Lasso
inputfile = './data.csv'
data = pd.read_csv(inputfile)
lasso = Lasso(1000)
lasso.fit(data.iloc[:,0:14],data['y'])
print(np.round(lasso.coef_,5))
print(np.sum(lasso.coef_ != 0))

mask = lasso.coef_ != 0
print(mask)

outputfile = './new_reg_data.csv'
new_reg_data = data.iloc[:,mask]
new_reg_data.to_csv(outputfile)
print(new_reg_data.shape)

 

5.灰色预测模型

 

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

inputfile1 = './new_reg_data.csv'  # 输入的数据文件
inputfile2 = './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
new_reg_data.loc[2016] = None
l = ['x1', 'x4', 'x5', 'x6', 'x7', 'x8']
for i in l:
    f = GM11(new_reg_data.loc[range(1994, 2014),i].to_numpy())[0]
    new_reg_data.loc[2014,i] = f(len(new_reg_data)-1)  # 2014年预测结果
    print(new_reg_data.loc[2014,i])
    new_reg_data.loc[2015,i] = f(len(new_reg_data))  # 2015年预测结果
    print(new_reg_data.loc[2015,i])
    new_reg_data.loc[2016,i] = f(len(new_reg_data)+1)  # 2016年预测结果
    print(new_reg_data.loc[2016,i])
    new_reg_data[i] = new_reg_data[i].round(3)  # 保留两位小数
    print("*"*50)
outputfile = './new_reg_data_GM11.xls'  # 灰色预测后保存的路径
y = list(data['y'].values)  # 提取财政收入列,合并至新数据框中
y.extend([np.nan,np.nan,np.nan])
new_reg_data['y'] = y
new_reg_data.to_excel(outputfile)  # 结果输出
print('预测结果为:\n',new_reg_data.loc[2015:2016,:])  # 预测结果展示

 

 

 

 

 

 

 

标签:loc,--,print,财政收入,import,第六章,new,data,reg
From: https://www.cnblogs.com/2020310148tjy/p/17179423.html

相关文章

  • 洛谷P1213 [USACO1.4][IOI1994]时钟 The Clocks
    这是一个暴力枚举题有两种解决方法,第一种用九重for循环(有点麻烦,尽量别用),第二种简化版(虽然行数少了,但难理解),先来看看 题目!!!题目描述考虑将如此安排在一个 3*3 行......
  • 图片
    ......
  • go的timeDuration
    packagemainimport( "fmt" "time")//https://blog.csdn.net/qq_35655945/article/details/82706022typeDurationint64const( NanosecondDuration=1 Mi......
  • 判断本机ip地址是否是公网ip
    打开网页  https://www.ip138.com/如果ip地址是10或者100开头,肯定不是公网ip如果后面的地址城市显示的不是所在的真实城市,那99%不是公网ip如果最后运营商不是联通或者......
  • TCP通信聊天服务端和客户端(C/C++语言开发)附完整源码
    距离上次学Python写的Python实现简单聊天室已经过去好久了,现在学c++又写了一遍,其实过程差不多,无非是语法的变化,目前仅实现最简单的一对一的通信,然后改就是了,接下来应该是......
  • go的sync,未完成timeDuration
    packagemainimport( "fmt" "sync" "time")varproducer=func(wg*sync.WaitGroup,lsync.Locker){ deferwg.Done() fori:=5;i>0;i--{ l.Lock()......
  • display/float/clear
    displayinline:将元素变为行内元素。不会独占一行,排列自左向右。可以通过display:inline将一个块元素变为行内元素。block:将元素变为块元素。独占一行,排列......
  • 信息显示程序
    第一个程序(C语言)显示信息Hello,world!通过printf语句实现信息显示在数据段给出这个字符串形式的信息:;数据段msgbyte'Hello,Assembly!',13,10,0;定义要显示的字符串......
  • Acwing 93周赛 C
    异或值(字典树)思路唉,人太笨了,知道用字典树,但想不出过程,知其然而不知其所以然。代码voidinsert(intx){ intp=0; for(inti=30;i>=0;i--) { intu=(x>>i)&......
  • AtCoder Beginner Contest 292
    A-CAPSLOCK(abc292a)题目大意给定一个小写字母串,将其转换成大写字母。解题思路调库,或者按照ascii码转换即可。神奇的代码#include<bits/stdc++.h>usingname......