likes
comments
collection
share

不同行业工龄与薪水的线性回归模型 | 更文挑战

作者站长头像
站长
· 阅读数 14

1. 背景

通常来说,薪水会随着工龄的增长而增长,不同行业的薪水增长速度有所不同。本案例要应用一元线性回归模型探寻工龄对薪水的影响,即搭建薪水预测模型,并通过比较多个行业的薪水预测模型来分析各个行业的特点。

2.读取数据

首先以IT行业为例进行分析,这里选取的是北京地区IT行业中工龄在0~8年范围内的100个IT工程师的月薪数据,存储在一个名为“IT行业收入表.xlsx”的Excel工作簿中。通过如下代码读取数据

import pandas as pd
df= pd.read_excel('IT行业收入表.xlsx')
df.head()

运行后可看到表格的前5行数据,内容见下表。

不同行业工龄与薪水的线性回归模型 | 更文挑战

此时的工龄为自变量,薪水为因变量,通过如下代码进行自变量、因变量选取。

X=df[['工龄']]
Y=df['薪水']

这里的自变量X必须写成二维结构形式,原因之前提过;而因变量Y写成一维结构形式即可,不过如果写成二维结构形式df[['薪水']],之后的模型也能运行。

通过如下代码可以将此时的散点图绘制出来。

from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SiMhei']
plt.scatter(X,Y)
plt.xlabel('工龄')
plt.ylabel('薪水')
plt.show()

第2行代码用来正常显示中文标签,SimHei表示“黑体”字体;第4行和第5行代码使用plt.xlabel()和plt.ylabel()函数添加坐标轴标签。绘制效果如下图所示。

不同行业工龄与薪水的线性回归模型 | 更文挑战

3.模型搭建

通过如下代码搭建线性回归模型。

from sklearn.linear_model import LinearRegression
regr = LinearRegression()
regr.fit(X,Y)

4.模型可视化

通过如下代码将线性回归模型进行可视化呈现。

plt.scatter(X,Y)
plt.plot(X,regr.predict(X),color='red')
plt.xlabel('工龄')
plt.ylabel('薪水')
plt.show()

第2行代码中的color='red'表示用红色绘制趋势线。绘制效果如下图所示

不同行业工龄与薪水的线性回归模型 | 更文挑战

5.线性回归方程构造

通过如下代码查看趋势线的系数a和截距b。

print('系数a: '+str(regr.coef_[0]))
print('截距b: '+str(regr.intercept_))


运行结果如下。因此,拟合得到的一元线性回归方程为y=2497x+10143。

不同行业工龄与薪水的线性回归模型 | 更文挑战