当前位置:   article > 正文

python数据分析完整流程-幸福感预测_1、可采用给定cgss(2021)数据(允许针对问题挑选部分变量和记录),也可以采用自己的

1、可采用给定cgss(2021)数据(允许针对问题挑选部分变量和记录),也可以采用自己的

一.数据背景及问题描述

  1. 数据来源:课题来源于天池大赛,数据来源于中国人民大学中国调查与数据中心《中国综合社会调查(CGSS)》项目,为多阶分层抽样的截面面访调查。
  2. 研究背景:在社会科学领域,幸福感的研究占有重要的位置。这个涉及了哲学、心理学、社会学、经济学等多方学科的话题复杂而有趣;同时与大家生活息息相关,每个人对幸福感都有自己的衡量标准。如果能发现影响幸福感的共性,生活中是不是将多一些乐趣;如果能找到影响幸福感的政策因素,便能优化资源配置来提升国民的幸福感。目前社会科学研究注重变量的可解释性和未来政策的落地,主要采用了线性回归和逻辑回归的方法,在收入、健康、职业、社交关系、休闲方式等经济人口因素;以及政府公共服务、宏观经济环境、税负等宏观因素上有了一系列的推测和发现。
  3. 研究目标:使用公开数据的问卷调查结果,选取其中多组变量,包括个体变量(性别、年龄、地域、职业、健康、婚姻与政治面貌等等)、家庭变量(父母、配偶、子女、家庭资本等等)、社会态度(公平、信用、公共服务等等),来预测其对幸福感的评价。

二.描述性统计

1. 数据介绍
1.1 标签介绍
数据集的标签是happiness变量,是一个取值为1到5的有序变量,表示幸福程度。数值越大表示幸福感越强,1表示感到非常不幸福,5表示非常幸福。
1.2 特征介绍
数据集中一共有139个特征,大致可以分为两类:第一类是与自身相关的,第二类是
与自身家庭相关的。第一类中与自身相关的可以大致细分为3个方面:第一方面是外在,比如出生日期、性别、身高、体重、身体健康状况等;第二方面是精神认知方面,比如是否有信仰宗教、社会公平度、对社会各项公共的满意程度等,第三方面主要是经济方面、比如过去现在以及将来所处社会等级、工作收入等。第二类是家庭基本信息,比如父母亲配偶的年龄、工作、政治面貌等。
2. 描述性统计
#查看数据的总体情况,可以看出共有140个变量,其中的happiness为标签变量

data.info(verbose=True,null_counts=True)
  • 1

2.1 标签
发现数据存在12个异常值,由于12占整体的数据量较少,此处描述性统计暂时不统计标签小于0的值,对结果影响不大,后续预处理将对标签进行处理 统计标签大于0 的分布从标签饼图可以看出觉得幸福的人最多,占样本的60.3%,其次是非常幸福的人,占样本的17.7%,感到非常不幸福的人较少仅占1.3%

label=data['happiness']
label.value_counts
colors=['steelblue','#ff9999','#7777aa','pink','#dd5555']
label_list=[]
label_c=[]
for i in range(1,6):
    label_list.append(data.loc[label==i,'happiness'].count())
plt.pie(label_list,labels=[1,2,3,4,5],autopct='%.1f%%',colors=colors)
plt.legend()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在学生这里插入图片描述
2.2个人信息描述
在这里插入图片描述

#样本类型查看
data['survey_type'].value_counts()
  • 1
  • 2

在这里插入图片描述
从样本类型的统计看出,城市中的样本占大多数。作出不同类别群体的幸福分布条形图,从图中可以看出两个群体关于幸福感的整体趋势是相同的,但城市类别中,感到特别幸福的人的比例略高于农村地区。

city=data[data['survey_type']==1]
rural=data[data['survey_type']==2]
city_list=[]
rural_list=[]
for i in range(1,6):
    city_list.append(city.loc[city['happiness']==i,'happiness'].count())
    rural_list.append(rural.loc[rural['happiness']==i,'happiness'].count())
width=0.35
plt.bar(range(1,6),city_list,width=width,label='city',color='pink')
plt.bar(np.arange(1,6)+width,rural_list,width=width,label='rural',color='#7777aa')
plt.xticks(np.arange(1,6)+0.1,[1,2,3,4,5])
plt.legend()
plt.show
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

**#性别**
sex_list=[]
for i in range(1,3):
    sex_list.append(data.loc[data['gender']==i,'happiness'].count())
plt.pie(sex_list,colors=['#7777aa','pink'],labels=['F','M'],autopct='%.1f%%')
plt.legend()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
性别分布的饼图如上图所示,F代表男性,M代表女性,可以看出女性受访者略多于男性,再做出不同性别的幸福感分布条形图,可看出男女 的幸福感分布走势基本相同,再通过比较均值进一步进行研究,这两个类别幸福感均值的条形图如图,可以看出女性群体的幸福感均值略高于男性。

f=data.loc[data['gender']==1]
m=data[data['gender']==2]
f_list=[]
m_list=[]
for i in range(1,6):
    f_list.append(f.loc[f['happiness']==i,'happiness'].count())
    m_list.append(m.loc[m['happiness']==i,'happiness'].count())
width=0.35
plt.bar(range(1,6),f_list,width=width,label='f',color='pink')
plt.bar(np.arange(1,6)+width,m_list,width=width,label='m',color='#7777aa')
plt.xticks(np.arange(1,6)+0.1,[1,2,3,4,5])
plt.legend()
plt.show
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
在这里插入图片描述
#年龄
用出生日期减去调查日期得到受访者的年龄。年龄分布的盒形图如下,从该图可以看出,样本中年龄大的有90多岁,小的不到20岁,大多数受访者年龄为40-60岁。按照幸福程度分组,可以看出组别均值之间存在差异,感到非常幸福的人的年龄均值最大。

#年龄
data['survey_time']=pd.to_datetime(data['survey_time'])
data['survey_year']=data['survey_time'].dt.year
data['age']=data['survey_year']-data['birth']
plt.boxplot(data['age'],patch_artist='pink')
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述
#身高
身高箱线图如图,身高最小值不到120cm、最大值超过190cm,有较多离群值。按照幸福感分组得到分组条形图,如图,幸福感为4即感到比较幸福的群体有较多离群值,同时也能看出 该群体的身高均值最大

plt.boxplot(data['height_cm&#
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/485615
    推荐阅读
    相关标签
      

    闽ICP备14008679号