财政收入影响因素分析及预测模型

该博客探讨了财政收入的影响因素,通过使用Adaptive-Lasso变量选择模型和灰色预测、神经网络预测方法,对地方财政收入、增值税、营业税、企业所得税和个人所得税进行了深入的分析和预测。数据集链接和提取码已提供。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据集链接: https://pan.baidu.com/s/1_-8F0DAyHyZSS2M7u-2NYQ 提取码: ex6y
原始数据概括性度量

#-*- coding: utf-8 -*-
import numpy as np
import pandas as pd
inputfile = 'D:\下载\data\inputdata1.csv' #输入的数据文件
data = pd.read_csv(inputfile) #读取数据
r = [data.min(), data.max(), data.mean(), data.std()] #依次计算最小值、最大值、均值、标准差
r = pd.DataFrame(r, index = ['Min', 'Max', 'Mean', 'STD']).T  #计算相关系数矩阵
np.round(r, 2) #保留两位小数

原始数据求解pearson相关系数

#-*- coding: utf-8 -*-
import numpy as np
import pandas as pd
inputfile = 'D:\下载\data\input\data1.csv' #输入的数据文件
data = pd.read_csv(inputfile) #读取数据
np.round(data.corr(method = 'pearson'), 2) #计算相关系数矩阵,保留两位小数

Adaptive-Lasso变量选择模型

#-*- coding: utf-8 -*-
import pandas as pd
from sklearn.linear_model import AdaptiveLasso#导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。

inputfile = 'D:\下载\data\input\data1.csv' #输入的数据文件
data = pd.read_csv(inputfile) #读取数据

model = AdaptiveLasso(gamma=1)
model.fit(data.iloc[:,0:13],data['y'])
model.coef_ #各个特征的系数

地方财政收入灰色预测

#-*- coding: utf-8 -*-
import numpy as np
import pandas as pd

def GM11(x0): #自定义灰色预测函数
  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、首项、方差比、小残差概率

inputfile = 'D:\下载\data\input\data1.csv' #输入的数据文件
outputfile = 'D:\下载\data\output\data1_GM11.xls' #灰色预测后保存的路径
data = pd.read_csv(inputfile) #读取数据
data.index = range(1994, 2014)

data.loc[2014] = None
data.loc[2015] = None
l = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']
for i in l:
  f = GM11(data[i][range(1994, 2014)].as_matrix())[0]
  data[i][2014] = f(len(data)-1) #2014年预测结果
  data[i][2015] = f(len(data)) #2015年预测结果
  data[i] = data[i].round(2) #保留两位小数

data[l+['y']].to_excel(outputfile) #结果输出

地方财政收入神经网络预测模型

#-*- coding: utf-8 -*-
import pandas as pd
inputfile = 'D:/下载/data/output/data1_GM11.xls' #灰色预测后保存的路径
outputfile = 'D:/下载/data/output/revenue.xls' #神经网络预测后保存的结果
modelfile = 'D:/下载/data/output/1-net.model' #模型保存路径
data = pd.read_excel(inputfile) #读取数据
feature = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7'] #特征所在列

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() #标签数据

from keras.models import Sequential
from keras.layers.core import Dense, Activation

model = Sequential() #建立模型
model.add(Dense(6, 12))
model.add(Activation('relu')) #用relu函数作为激活函数,能够大幅提供准确度
model.add(Dense(12, 1))
model.compile(loss='mean_squared_error', optimizer='adam') #编译模型
model.fit(x_train, y_train, nb_epoch = 10000, batch_size = 16) #训练模型,学习一万次
model.save_weights(modelfile) #保存模型参数

#预测,并还原结果。
x = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值