1.求取企业所得税各特征间的相关系数
(1)求取原始数据特征之间的Pearson相关系数。
(2)判断各特征之间的相关性。
#求取企业所得税各特征间的相关系数
import numpy as np
import pandas as pd
inputfile = 'income_tax.csv' #读取数据文件
data = pd.read_csv(inputfile) #读取数据
#输出Pearson相关系数,并保留两位小数
print('相关系数矩阵为:','\n',np.round(data.iloc[1:,1:].corr(method = 'pearson'), 2))
由结果可知,规模以上国有及国有控股工业企业亏损面(x6 )与企业所得税(y)的线性关系不显著,呈现负相关。其余特征均与财政收人呈现高度的正相关关系,但与此同时,各特征之间存在着严重的多重共线性。分析可知,选取的各特征除了x6 外,其他特征与y的相关性很强,可以用作企业所得税预测分析的关键特征,但这些特征之间存在着信息的重复,需要对特征进行进一步筛选。
2.选取企业所得税预测关键特征
(1)建立Lasso回归模型。
(2)对Lasso回归结果进行解读。
#选取企业所得税预测关键特征
import numpy as np
import pandas as pd
from sklearn.linear_model import Lasso
inputfile = 'income_tax.csv' #输入的数据文件
data = pd.read_csv(inputfile) #读取数据
print('输出原始数据的维度为:',data.shape)
lasso = Lasso(1000,random_state=6666) #调用Lasso()函数,设置λ的值为1000
lasso.fit(data.iloc[:,1:11],data['y']) #本题中第一列为年份,应该排除
print('相关系数为:',np.round(lasso.coef_,5)) #输出结果,保留五位小数
#计算相关系数非零的个数
print('相关系数大于零个数为:',np.sum(lasso.coef_ > 0))
mask = lasso.coef_ > 0 #返回一个相关系数大于零的布尔数组
print('相关系数是否大于零:',mask)#这时输出的mask为对应特征是否保留的布尔值
mask=np.insert(mask