这个月本手游活跃度下降了 | R语言商业分析实践2

2017 年 12 月 18 日 R语言中文社区 杨奉山

作者:杨奉山  R语言中文社区专栏作者,R语言小学生,和我一起为成为优秀的商业数据分析师努力吧 

知乎专栏:https://zhuanlan.zhihu.com/YFSbda


再次重申:一个好的商业分析项目从来都不是从数据出发的,而是根据现象提出问题,之后根据问题从大局出发进行总体的(非数据上)分析(要清晰的把握自己的问题是什么,如何通过数据分析解决问题),根据这一步的分析建立具体数据分析框架,凭此再去确定要收集的数据和加工数据,最后分析得出结论解决问题。下面以一个手游公司手游活跃度为例做商业数据分析。

2.1章介绍的是验证性数据分析(即数据分析是为了验证最开始的假设),本章的数据分析数据探索性数据分析(在数据分析前没有假设,根据目的在数据分析过程中不停的假设验证推断)。

同时本章你将接触一个重要的观点:统计推断一定要结合现实业务具体情况,只有统计推断的数据分析是无根之草。

第一部分:项目及思路分析

  • 现象:企业的明星游戏产品《亡者农药》一直很活跃,每个月玩家登陆总登陆次数一直很稳定,这个月突然从9万多次下降到了7万多。

  • 目的:通过数据分析揪出登陆次数下降的原因,针对性的提出解决办法。

  • 总体分析:

1. 根据业务经验提出两点假设:(1)商业宣传活动少了,流失的用户大于新进来的用户。(2)这个月开展的游戏活动主题和上个月不同。

2. 经过和市场部和游戏开发部交流得到两点信息:(1)商业宣传活动没变。(2)游戏活动主题没有变化。

3. 根据前两步无法提出具体假设。因此我们只能收集这俩个月所有登陆用户的信息,对玩家分细,看看是哪个用户群出问题了。

4. 根据第三步分析确定要收集的数据信息:玩家登陆信息及每个玩家的具体属性(男女、年龄段,所用设备之类)

5. 对不同属性的用户群进行结合实际情况的统计推断分析(本章介绍列联表分析及

检验)。


6. 根据数据分析结果针对性的提出解决方案。

第二部分:按第一部分思路进行数据分析

数据是原始未经过任何处理的游戏数据,共记录了该公司某个手游的8月-9月170360条玩家登陆。网盘链接:pan.baidu.com/s/1skIsVr 密码:b7th

1. 首先读取数据,同时去除掉无用的列:game_id(游戏名称)

#为了提高效率注释不再细写#注意知乎非代码块文字介绍吧#同时为了精简代码将使用%>%(管道)操作#读取数据同时去掉无用数据dau <- read.csv(file='用户8-9月登陆数据.csv',header=T,stringsAsFactors=F)[,-2]user <-read.csv(file='用户个人信息库.csv',header=T,stringsAsFactors=F)[,-2]

2. 为登陆的用户添加个人信息(属性)

#为8-9月登陆用户添加个人信息dau.user <- merge(dau,user,by='user_id') %T>%print(max=20) dau.user$log_month <- substr(dau.user$log_date,6,7)#添加月标签

第一条记录表示:用户1(ID为1)在2013年9月6日登陆了游戏,安装游戏时间是2014年4月15日,男性,40~49岁,用的设备是iOS(苹果)。

3.1 第一次探索性分析:

分析两个月的用户登录次数是否受性别影响。(为了代码整洁这里使用了向左管道符和向右管道符,来源于包‘magrittr’。同时笔者为了方便各个水平的人阅读,尽量使用基础包中的函数。ggplot2除外)

table(dau.user$log_month,dau.user$gender) %T>%
  {print(chisq.test(.))} %>%
  data.frame %>%
  ggplot(aes(Var1,Freq,fill=Var2))+
  geom_bar(stat = 'identity',position = "fill") 

为了方便代码阅读这里放出截图:

卡方检验结果:

Pearson's Chi-squared test with Yates' continuity correction

data: .
X-squared = 1.9958, df = 1, p-value = 0.1577

p值远远大于0.05,不拒绝原假设,认为两个月的登陆次数与性别无关。同时通百分比柱形图上也能看得出来:

要是撰写报告应修改标签及添加标题,下同

3.2第二次探索性分析:

分析两个月的用户登录次数是否受年龄影响。

(p2 <- table(dau.user$log_month,dau.user$generation))%T>% 
{print(chisq.test(.))} %>%
  data.frame %>%
  ggplot(aes(Var1,Freq,fill=Var2))+
  geom_bar(stat = 'identity',position = "fill")
(p2[1,]-p2[2,])/p2[1,]#看看是个年龄段的变化大
p2[,4]/rowSums(p2)#看看40岁的玩家占总人数多少
chisq.test(p2[,-4])#剔除后再次检验

(Tips:这里为什么要设置一个p2呢,因为统计推断中卡方检验的p值很小,拒绝原假设,初步认为两个月的用户登录次数受年龄影响,但观察百分比条形图发现年龄结构没什么变化,所以应进一步结合实际情况分析。)

Pearson's Chi-squared test

data: .
X-squared = 17.247, df = 4, p-value = 0.001731

进一步检查是哪个年龄段的登录次数变化与其他年龄段差别大,然后发现除了40~49以外的年龄段登陆次数变化都是差不多一个水平。

(p2[1,]-p2[2,])/p2[1,]#看看是个年龄段的变化大
       10        20        30        40        50 
0.1806761 0.1913219 0.2082502 0.1511101 0.2058397 

然后我们具体看看40~49的年龄段的登录次数占比如何:通过计算发现只占到10%不到,对总体2万次登陆次数减少影响并非关键因素。

p2[,4]/rowSums(p2)#看看40岁的玩家占总人数多少
        08         09 
0.09373042 0.09837873 

将40~49年龄段剔除后再次进行卡方检验:

chisq.test(p2[,-4])#剔除后再次检验

	Pearson's Chi-squared test

data:  p2[, -4]
X-squared = 6.7468, df = 3, p-value = 0.08042

这次p值大于0.05,不拒绝原假设,认为登录次数减少与年龄层次无关。

3.3第三次探索性分析:

分析两个月的用户登录次数是否受登陆设备影响。

table(dau.user$log_month,dau.user$device_type)%T>%
{print(chisq.test(.))} %>%
  data.frame %>%
  ggplot(aes(Var1,Freq,fill=Var2))+
  geom_bar(stat = 'identity')  
Pearson's Chi-squared test with Yates' continuity correction

data: .
X-squared = 2041.7, df = 1, p-value < 2.2e-16

这一次不但p值极小,而且也可以从堆积条形图上看出iOS设备用户无明显变化,但Android设备用户数量明显下降。I got tou。我们初步断定是Android用户的登录次数减少导致总体登陆次数减少,但仅仅靠此并不能知道Android用户为什么游戏玩的少了,更不能提出针对性的建议,所以我们还要有下一步深度分析。

4.深度分析

这一步分析的思路是分别画出两个设备从8月1日到9月30日的每日登录次数

#深度分析
table(dau.user[,c(2,6)]) %>%
  data.frame %>%
  ggplot(aes(as.Date(log_date),Freq,color=device_type,shape=device_type))+
  geom_line()+geom_point(size=3)+
  labs(x='登陆时间',y='当日登录次数',color='设备类型',shape='设备类型',title='好累啊终于快搞完了')

数据可视化的一个好处就是在探索性分析中给人一种茅塞顿开的视觉冲击。从上图我们可以看数本来稳定的登录次数从9月11后猛地下降,直到3天后才趋于平稳,那么现在我们只需要去问问其他部门或者安卓玩家这两天发生了什么即可,然后就此便针对性的给出建议。


公众号后台回复关键字即可学习

回复 R               R语言快速入门免费视频 
回复 统计          统计方法及其在R中的实现
回复 用户画像   民生银行客户画像搭建与应用 
回复 大数据      大数据系列免费视频教程
回复 可视化      利用R语言做数据可视化
回复 数据挖掘   数据挖掘算法原理解释与应用
回复 机器学习   R&Python机器学习入门 

登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
因果关联学习,Causal Relational Learning
专知会员服务
182+阅读 · 2020年4月21日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
缺失数据统计分析,第三版,462页pdf
专知会员服务
108+阅读 · 2020年2月28日
今日头条技术架构分析
互联网架构师
11+阅读 · 2019年8月19日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
2019年Q1中国互联网流量季度分析报告
艾瑞咨询
5+阅读 · 2019年5月15日
用户研究:如何做用户画像分析
产品100干货速递
44+阅读 · 2019年5月9日
【干货】电商数据中台如何构建?
AliData
11+阅读 · 2019年4月4日
硬核| 在麦肯锡,行研和数据分析要这么做!
行业研究报告
20+阅读 · 2019年3月26日
如何成为一名商业产品经理?
产品100干货速递
6+阅读 · 2018年10月18日
干货|用机器学习检测异常点击流
全球人工智能
6+阅读 · 2017年7月30日
Neural Response Generation with Meta-Words
Arxiv
6+阅读 · 2019年6月14日
Doubly Attentive Transformer Machine Translation
Arxiv
4+阅读 · 2018年7月30日
Bidirectional Attention for SQL Generation
Arxiv
4+阅读 · 2018年6月21日
Arxiv
5+阅读 · 2018年5月28日
Arxiv
3+阅读 · 2018年3月13日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
因果关联学习,Causal Relational Learning
专知会员服务
182+阅读 · 2020年4月21日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
缺失数据统计分析,第三版,462页pdf
专知会员服务
108+阅读 · 2020年2月28日
相关资讯
今日头条技术架构分析
互联网架构师
11+阅读 · 2019年8月19日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
2019年Q1中国互联网流量季度分析报告
艾瑞咨询
5+阅读 · 2019年5月15日
用户研究:如何做用户画像分析
产品100干货速递
44+阅读 · 2019年5月9日
【干货】电商数据中台如何构建?
AliData
11+阅读 · 2019年4月4日
硬核| 在麦肯锡,行研和数据分析要这么做!
行业研究报告
20+阅读 · 2019年3月26日
如何成为一名商业产品经理?
产品100干货速递
6+阅读 · 2018年10月18日
干货|用机器学习检测异常点击流
全球人工智能
6+阅读 · 2017年7月30日
Top
微信扫码咨询专知VIP会员