作者:杨凤山,R语言中文社区专栏作家,R语言小学生,跟我一起努力成为一名优秀的商业数据分析师
知乎专栏:
我再重申一下:一个好的商业分析项目从来不是从数据开始,而是根据现象提出问题,然后根据问题进行整体(非数据)分析(你要清楚地掌握自己的什么)问题是,如何通过数据分析来解决问题),根据这一步的分析建立具体的数据分析框架,然后确定要收集的数据并对数据进行处理,最后分析得出结论来解决问题。 下面以某手机游戏公司的手机游戏活动为例进行业务数据分析。
2.1章介绍了验证性数据分析(即数据分析是为了验证初始假设)。 本章的数据分析数据属于探索性数据分析(数据分析之前没有任何假设,数据分析过程中根据目的不断做出假设,验证推论)。
同时,你会在本章中接触到一个重要的观点:统计推断必须结合具体的实际业务情况,仅靠统计推断进行数据分析是无根之草。
第一部分:项目和想法分析
1.根据业务经验提出两个假设:(1)商业推广活动较少,流失的用户大于新增用户。 (二)本月开展的游戏活动主题与上月不同。
2、与市场部、游戏开发部沟通后,我们得到两个信息:(1)商业推广活动没有变化。 (二)游戏活动主题没有改变。
3. 根据前两步不能做出具体的假设。 因此,我们只能收集近两个月所有登录用户的信息,对玩家进行细分,看看是哪个用户群出现了问题。
4、根据第三步分析确定需要收集的数据信息:玩家登录信息以及每个玩家的具体属性(男女、年龄段、使用的装备等)。
5、针对不同属性的用户群体,根据实际情况进行统计推断分析(本章介绍列联表分析和
测试)。
6.根据数据分析结果提出针对性的解决方案。
第 2 部分:基于第 1 部分的想法进行数据分析
这些数据是未经任何处理的原始游戏数据。 记录该公司某款手游8月至9月的玩家登录情况。 网盘链接:/s/密码:b7th
1.首先读取数据,去掉无用的列:(游戏名)
#为了提高效率注释不再细写#注意知乎非代码块文字介绍吧#同时为了精简代码将使用%>%(管道)操作#读取数据同时去掉无用数据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(Apple )。 。
3.1 第一次探索性分析:
分析两个月用户登录次数是否受性别影响。 (为了代码整洁,这里使用了左管道符和右管道符,它们来自包''。同时,为了方便各个级别的人阅读,作者尝试使用基本包中的功能。
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")
为了方便阅读代码,这里截图:
卡方检验结果:
与耶茨的气测试
数据: 。
X- = 1.9958,df = 1,p 值 = 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])#剔除后再次检验
(温馨提示:这里为什么要设置一个p2?因为统计推断中卡方检验的p值很小,所以拒绝原假设。初步认为两个月的用户登录次数受到影响年龄,但观察百分比条形图,发现年龄结构没有变化,应根据实际情况进一步分析。)
的 Chi 测试
数据: 。
X- = 17.247,df = 4,p 值 = 0。
经过进一步考察,哪个年龄段的登录数变化比其他年龄段更大,我们发现除了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')
与耶茨的气测试
数据: 。
X- = 2041.7,df = 1,p 值 < 2.2e-16
这次不仅p值极小,而且从堆叠条形图也可以看出,iOS设备用户没有明显变化,但设备用户数量却大幅下降。 我得到了你。 我们初步得出的结论是,用户登录次数的减少导致了总体登录次数的减少。 但仅凭此我们无法得知用户玩游戏减少的原因,更无法提出针对性的建议,所以我们需要进行进一步的深入分析。
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天后又趋于稳定。 所以现在我们只需要询问其他部门或者玩家这两天发生了什么就可以了。 ,然后对此提出有针对性的建议。
还没有评论,来说两句吧...