先完成作业,再看老师解答,若有不同的地方或出错之处再来修改。
作业要求:
使用auto_ins作如下分析
1、首先对loss重新编码为1/0,有数值为1,命名为loss_flag
2、对loss_flag分布情况进行描述分析
3、分析是否出险和年龄、驾龄、性别、婚姻状态等变量之间的关系(提示:使用分类盒须图,堆叠柱形图)
在spyder中完成第三讲作业HW4:
# In[1]:
#导入模块
from stack2dim import *
####################################################################
# # 1.首先对loss重新编码为1/0,有数值为1,命名为loss_flag
auto_ins['loss_flag'] = auto_ins['Loss'].apply(lambda x: 0 if x==0 else 1)
print(auto_ins,'\n')
# In[2]:
####################################################################
# # 2.对loss_flag分布情况进行描述分析
import matplotlib.pyplot as plt
auto_ins['loss_flag'].value_counts().plot(kind = 'bar')
plt.title('loss_flag的分布')
plt.ylabel('频数')
plt.xlabel('loss_flag')
plt.show()
# In[3]:
###################################################################
# # 3.分析是否出险和年龄、驾龄、性别、婚姻状态等变量之间的关系
# (提示:使用分类盒须图,堆叠柱形图)
# # 3.1 是否出险与年龄的关系
#--------------------------------------错误绘图方式---------------------------------------------
auto_ins.groupby('loss_flag').Age.mean().plot(kind = 'bar')
plt.title('Age vs loss_flag')
plt.ylabel('Age')
plt.xlabel('loss_flag')
plt.show()
'''
据图可看出,出险与年龄无关
'''
# In[4]:
# # 3.2 是否出险与驾龄的关系
auto_ins.groupby('loss_flag').vAge.mean().plot(kind = 'bar')
plt.title('vAge vs loss_flag')
plt.ylabel('vAge')
plt.xlabel('loss_flag')
plt.show()
'''
据图可看出,出险与驾龄有关
'''
#-------------------------------------------------------------------------------------------------
#%%
#------------------------------------------ 正确解答 --------------------------------------------
'''
老师讲解后修改
'''
'''
年龄Age和驾龄exp为连续变量,loss_flag为分类变量,
分类变量与连续变量的描述统计关系图用分类盒须图
'''
fig = plt.figure()
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)
#是否出险与年龄
import seaborn
seaborn.boxplot(x='loss_flag',y='Age',data=auto_ins,ax=ax1)
#是否出险与驾龄
seaborn.boxplot(x='loss_flag',y='exp',data=auto_ins,ax=ax2)
'''
据分类盒须图可看出,年龄中位数几乎相等,驾龄中位数相差明显
所以,出险与年龄无关,和驾龄有关
'''
#------------------------------------------------------------------------------------------------
# In[5]:
# # 3.3 是否出险与性别的关系
stack2dim(auto_ins, 'loss_flag','Gender')
'''
据图可看出,出险与性别有关
'''
# In[6]:
# # 3.4 是否出险与婚姻状态的关系
stack2dim(auto_ins,'Marital','loss_flag')
'''
据图可看出,出险与婚姻状态有关
'''
# In[7]:
# # 3.5 是否出险与汽车出产国的关系
stack2dim(auto_ins, 'loss_flag', 'import')
'''
据图可看出,出险与汽车出产国无关
'''
#%%
###################################################################
'''
根据上面的分析,可得出:出险与驾龄、性别、婚姻状态有关
'''