一、分析目的:
英国某家在线教育机构Open University,在2013-2014年四个学期期间,开设的七门课程的数据集。
1、分析用户属性特征,得出主要用户群体画像;
2、分析每门课程销售情况,注册与退课情况,学习使用与考核情况,以识别高价值课程并调整课程安排
数据来源 kaggle:https://www.kaggle.com/tedogogoladze/open-university-analytics-datasets-unzipped
该数据集包含7个结构化表格
7个表格的主键和结构关系如下图:
由于分析目的需要销售额数据,这里为每个学期的每门课程构造一个价格数据
假设课程价格符合市场供求规律,课程越贵,选课人数越少:
假设BBB是最简单的课程,课程难度随着CCC,BBB,FFF,DDD,EEE,GGG,AAA递增,价格会越来越贵
假设课程价格的基准是10*时间长度,同时价格根据难度增加,CCC为11乘时间长度,BBB为12,以此类推
# 读取数据
courses = pd.read_csv('./courses.csv')
presentation = sorted(courses['code_presentation'].unique().tolist())
print(presentation)
# presentation 为['2013B', '2013J', '2014B', '2014J']
module = pd.Series(['BBB','FFF','DDD','CCC','EEE','GGG','AAA'])
print(module)
# module 为 ['BBB','FFF','DDD','CCC','EEE','GGG','AAA']
# 基准价格x = 10
module_price={}
for i in range(len(module)):
m = module[i]
module_price[m]= x + i
print(module_price)
# 增加价格列,并用每门课基准价格乘时间长度courses['price']=courses['code_module'].map(module_price)courses['price']=courses['module_presentation_length']*courses['price']
print(courses)
courses.to_csv('cour.csv')
二、数据分析
(一)用户群体画像
性别:男女比例差异不大,男性略高于女性
年龄段:用户集中在35岁以下(70.4%)
最高学历:Lower Than A Level(高中以下)和A Level or Equivalent(高中)分别占比41.1%和43.5%,说明该平台用户主要是低学历者;
年龄段:0-35;35-55;>=55(原始数据分类)
多重剥夺指数范围(衡量学生所在区的城市贫富等情况):用户分布较为分散,各区所占比例差别不大
学生居住区:13个地区中,所占比例高于10%的包括East Anglian Region、Scotland、London Region,South Region和North Western Region的比例高于9%。
(二)分析课程销售情况:
统计2013B,2013J,2014B,2014J四个学期的总体销售情况发现,平台销售总额和选课总用户数都在同比(同学期对比)大幅度上升,但是总体退课率高达30%,而且退课率有上升的趋势。
(1)统计每门课程的销售额(哪门课程的GMV高?)
总体来看,CCC是2014年新开高价值课程,两个学期的销售额都排名第一;
销售额贡献较高的老牌高销量课程依次为FFF,BBB,DDD;
AAA和GGG的销售额排名落户,而且没有明显提升,需要结合运营成本评估课程利润,结合课程满意度评估品牌价值,以判断是否继续开课。
(2)统计每门课程选课人数(哪门课程热门课程?)
总体来看,CCC平均选课人数最多,为新增热门课程,其次是BBB,FFF;
从学期维度看,观察每个学期(B/J)都开设的课程,J学期(10月)选课人数高于B学期(2月),用户下半年购课意愿更高;
GGG课程的选课人数明显下滑,需要分析下滑原因及应对策略,可以结合课程销售页预览量,试听量,付费人数以及各环节转化率分析具体原因;
(3)统计每门课程的注册与退课情况,并计算注册率与退课率(哪门课程退课率高?)
折线图:退课率(退课人数/注册人数)
首先,每门课程注册率都高于99%,所以未在图表展示,这里重点分析退课率(流失率):
退课率最高的课程是CCC,作为新开课程,吸引了大量用户购课,但是课程内容有待优化迭代以留住用户(可以分析用户学习行为和考核结果,用户反馈,教师评价等数据探究原因),第二学期退课率有降低向好的趋势(说明迭代产品有一定效果);
选课人数较多的明星课程 BBB,FFF退课率逐渐上升,需要注意保持老牌课程品质口碑,防止损失主要客户;
选课人数较少的课程AAA和GGG的退课率相对较低,说明这两门课已经比较成熟且优质,需要重点探究用户增长方案,如何吸引新的用户。
整体来看用户退课率变化呈上升趋势,将会影响用户留存与复购,不利于产品口碑建设。
(4)统计每门课程的未退课用户的通过情况(哪门课程教学效果好?)
总体来看,七门课程的通过率都较高(60%以上),其中A课程通过率最高,因选课人数少,猜测A课程可能为小班教学,教学效果最好;
课程通过率整体呈上升趋势,同样呈现J学期(10月份)比B学期(2月份)通过率较高的情况,说明J学期用户的购课和学习效果都更高。
(5)统计每门课程的学习使用情况 (哪门课程的用户粘性更高?)
维度:code_module, code_presentation
度量:平均学习天数=COUNT([Date])/COUNTD([Id Student (Stu Vle)]);平均点击次数=SUM([Sum Click])/COUNTD([Id Student (Stu Vle)])
总体来看,AAA课程的人均学习天数最高,FFF课程的人均点击次数最高(且人均学习天数也很高),属于学习使用频率较高的课程;
BBB,GGG课程的学习使用频率偏低,可以查看课程的学习行为方式设置是否有问题,如何设置才能提高学习积极性,提升用户粘性。
(6)统计每种行为类型(线上学习方式)的使用情况(哪种方式更能吸引用户使用?)
标靶图:观察每一个id_site(学习行为表中的行为ID,在某学期某课程中设置的id_site)的人均使用天数
设置数量=COUNT([Id Site (Vl)])
使用人数 ={FIXED [Id Site (Stu Vle1)]:COUNTD([Id Student (Stu Vle1)])}
使用天数={FIXED [Id Site (Stu Vle1)]:COUNT([Date (Stu Vle1)])}
使用次数 ={FIXED [Id Site (Stu Vle1)]:SUM([Sum Click (Stu Vle1)])}
人均使用天数=[使用天数]/[使用人数]
人均点击次数 = [使用次数]/[使用人数]
从上图可以看出resource设置的数量最多,但是每一个id_site的人均使用天数都很少;subpage、url、oucontent 设置的数量较多,但是大部分id_site的人均使用天数较少,仅有少数异常值;
而homepage设置的数量最少,但是每一个id_site的人均使用天数都偏高,不过数据较为分散,不同课程的id_site的人均使用天数差异比较大;forumng的设置数量较少,人均使用天数整体较多,同样呈现不同课程的id_site差异较大的特点;
其他线上学习方式的人均使用天数整体偏低而且较为集中。
三、总结
J学期开设课程多于B学期,而且平均选课人数和课程通过率都偏高,可以重点运营和推广J学期的课程;
FFF、BBB课程是该机构的老牌高销量高通过率课程,但是两门课程的退课率逐渐增加,其中BBB的使用频率偏低,需要注意保持课程品质口碑,防止损失主要客户;
CCC 是新增高价值课程,目前的退课率高(大于40%),但是课程内容有待优化迭代以留住用户(可以分析用户学习行为和考核结果,用户反馈,教师评价等数据探究原因)
AAA 、GGG课程选课人数少,但退课率低,通过率低,两门课已经比较成熟且优质,需要重点探究用户增长方案,如何吸引新的用户(GGG使用频率不高);
大部分课程都存在退课率上升的现象,需要重点关注并改进课程内容设置,教师与助教团队建设,课程日产运营维护。