首先对数据集进行描述性统计分析:
import pandas as pd
# The user has now uploaded a CSV file. Let's attempt to read it.
csv_file_path = '广东省地方财政表1(1).csv'
# Attempting to read the CSV file using GBK encoding
try:
# Reading the CSV file with GBK encoding
csv_data = pd.read_csv(csv_file_path, encoding='GBK')
# Indicating successful read and showing an overview of the data
read_success = True
data_overview = csv_data.head()
except Exception as e:
# In case of an error, provide feedback
read_success = False
data_overview = str(e)
read_success, data_overview
# 1. Checking data integrity and consistency
data_integrity = csv_data.info()
# 2. Descriptive statistics analysis
descriptive_stats = csv_data.describe()
# 3. Correlation analysis
correlation_matrix = csv_data.corr()
descriptive_stats, correlation_matrix
数据涵盖了从2013年到2023年的11个年份。财政收入在这段时间内呈上升趋势,从7081.26单位(可能是货币单位)增长到14103.43单位。与财政收入相比,财政支出一直高于收入,表明该地区的财政处于赤字状态。这可能是为了推动经济增长、基础设施建设或社会福利支出等原因。债务余额从1088单位增长到30317.97单位,这表明该地区的债务水平在逐年增加。负债率在0.0786到0.2431之间波动,这表示负债相对于财政收入的比重在变化,但整体上负债率较高。...
综合来看,该地区经济在这段时间内总体上呈现出稳步增长的趋势,但财政赤字、债务增加、负债率高等问题也需要引起关注。同时,科技投入、城市绿化、外贸活动等方面也需要继续加强,以促进经济的可持续发展和社会的均衡进步。
相关性分析
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['KaiTi'] #中文
plt.rcParams['axes.unicode_minus'] = False #负号
# Setting up the plot
plt.figure(figsize=(10, 8))
# Creating a heatmap for the correlation matrix
sns.heatmap(csv_data.corr(), annot=True, fmt=".2f", cmap='coolwarm')
# Showing the heatmap
plt.title("Correlation Matrix")
plt.show()
从相关性热力图可以看出,年份与其他变量的相关性:年份与其他变量的相关性较低,绝大多数相关系数接近于0,说明年份与其他变量之间没有明显的线性关系。财政收入、财政支出、债务余额、负债率、科技经费支出、建成区绿化覆盖率、出口比重、进口比重、城乡居民收入差距之间的相关性:这些变量之间呈现出较高的正相关性。例如,财政收入与财政支出、债务余额等都呈现出较高的相关性,这表明它们之间存在一定的关联。债务余额与负债率、科技经费支出、建成区绿化覆盖率、出口比重等之间也呈现出较高的相关性,这可能反映了在财政支出较高时,债务水平也随之增加的趋势。
总的来说,相关系数矩阵提供了各变量之间的线性相关性的信息,但需要注意的是,相关系数只反映了线性关系,可能存在非线性关系未被反映出来的情况。
接下来使用多元线性回归线看一下
这个公式表示了每个自变量对财政支出的影响,系数表示每个自变量单位变化时,财政支出变化的量。
接下来对数据进行岭回归,这里因变量为财政支出,其他为自变量。
岭回归是一种用于处理多重共线性的线性回归方法,通过引入正则化项(岭项)来限制回归系数的增长,从而改善模型的泛化能力。
下面是对给出的岭回归结果的分析:
第一个自变量的系数约为1188.40
第二个自变量的系数约为497.02
第三个自变量的系数约为-239.39
第四个自变量的系数约为-49.99
第五个自变量的系数约为611.98
第六个自变量的系数约为-263.07
第七个自变量的系数约为538.76
第八个自变量的系数约为-87.75
第九个自变量的系数约为-409.36
第十个自变量的系数约为-780.00
正系数表示随着自变量的增加,因变量也会增加;负系数表示随着自变量的增加,因变量会减少。Mean Squared Error(均方误差)是预测值与真实值之间差异的平方的平均值。在这个结果中,均方误差约为1443611.25,表示模型的预测值与真实值之间的平均差异较大。R² Score(决定系数)是模型拟合数据的程度,取值范围在0到1之间,越接近1表示模型拟合程度越好。
接下来使用随机森林查看特征的影响程度:
# Extracting feature importances
feature_importances = rf_model.feature_importances_
# Creating labels for the plot
feature_labels = X_rf.columns
# Plotting feature importances
plt.figure(figsize=(12, 8))
plt.bar(feature_labels, feature_importances, color='skyblue')
plt.xlabel('Features')
plt.ylabel('Importance')
plt.title('Feature Importance in RandomForest Model')
plt.xticks(rotation=45)
plt.show()
根据上面的图表,我们可以观察到不同特征对于模型的重要性。城乡居民收入的影响程度是最显著的,这意味着城乡居民收入对于模型的预测起着至关重要的作用。其次是债务余额,这表明债务水平对于预测结果也有着相当大的影响。紧随其后的是财政收入和科研经费支出,这些因素也在一定程度上影响着模型的预测能力。而影响最小的是资本产出率,这表明资本产出率对于模型的预测影响相对较小。