[游戏数据分析]WAU模型简介及WAU预测
声明:本博客中所采用的数据并非真实数据,会对真实数据加以变换,重在讨论游戏数据分析的思路。
这里是参考友盟的WAU模型[文章网址, 演示网址],利用某款游戏(以下称为游戏A)数据进行的分析。
作用:
1. 根据转移矩阵,可以对未来的WAU进行预测;
2. 查看”WAU用户构成”可以发现游戏的问题:新增过少?流失过多?忠诚用户过少?
概念解释:
这里所说的第N周,是往前推的第N周,如下图所示:

- 新增用户:注册时间在该周的用户。
- 本周回流用户:上周未登录游戏,本周有登录游戏的用户。
- 连续活跃N周的用户:在连续N周都有登录,但是在第N+1周没有登录,比如:连续3周,也就是往前推3周都有登录,但是往前的第4周没有登录。
- 忠诚用户:连续5周及以上活跃的用户
- 近期流失用户:连续n周(1<=n<=4)没有登录过游戏的用户(第n+1周启动过),比如:连续4周没有登录过游戏,但是第5周有启动过游戏。
根据上述定义,周活跃用户(WAU)由:新增用户、连续2周活跃用户、连续活跃3周、连续活跃4周、忠诚用户,组成。将每一种用户类型视为一种用户状态,各状态间的转移关系如下:

思路:
1.利用游戏A的活跃用户数据,按周将用户分成上述的各个类型,得到每周各个类型的人数;
2.计算前4周每周之间类型转移概率。得到3个转移概率矩阵,然后对矩阵中每项取平均值,得到如下的转移概率矩阵,用于后面WAU的预测。
注意到最后一行中:“近期流失用户”转换为“本周回流用户”和“近期流失用户”的概率之和不为1,这是前4周没有活跃且第5周有活跃的“近期流失用户”,在新的一周中,如果没有继续活跃,则不算是新的一周中的”近期流失用户“。
3.WAU预测
将前一周的各类型用户数乘以相应的转移概率,得到新一周的预测用户数。这里需要说明的是:新一周中“本周回流用户“是来自于两部分:1.上周的近期流失用户、2.上周的连续5周及以上没有登录的流失用户。对于第1部分的回流用户,直接用”上周的近期流失用户“乘以相应的转移概率即可。对于第2部分的回流用户如何计算呢?通过数据发现,(对于一款稳定的游戏而言)由”上周的近期流失用户“转化而来”回流用户“占总回流用户的比例是变化不大的,因此,计算"上周近期流失用户"转换而来的”本周回流“用户占比,前三周的值,取平均。然后用:近期流失用户*转移概率/该比值,即可得到预测的”本周回流用户“。预测的情况如下,与真实数据比较的误差率为3.6%

其他结论:
1) 由上面的转移矩阵可知:用户连续活跃的周数越多流失的概率也就越低,流失后再回流的概率相对也更高;
2) 由下面,各类型用户在WAU中的占比可以得出:新增用户在WAU中占比最多,而连续活跃2周以上的人数占比较少,说明游戏的用户主要来自于新增用户,而老用户的流失情况较为严重。因此,应主要关注新用户的转化率及老用户的留存流失情况。第二个方面,“回流用户”占比较多,但是“回流用户”转换为“连续2周活跃”的概率较小,说明有很多用户并不是频繁地登录游戏,间隔一周以上会玩一下,但是玩玩后有很快又会流失掉(7天没有登录游戏定义为流失),可以深入地去分析这部分回流用户,是否回流一次之后就再也不回来?如果是这种情况,则需要对这占比很大的“回流用户”采取挽留措施,比如,登录奖励、道具打折之类。还有一个原因,用户对游戏玩法已经感到疲劳,不愿再玩游戏,从而导致老用户的留存率很低,这就需要考虑是否增加新的场景或者角色或者道具来吸引用户。

3) 忠诚用户的数量在这5周中整体呈下降趋势(此处没给出具体数据),这需要引起运营的注意,因为这些App最优质用户的流失是整个App活跃用户规模开始缩水的前兆。
[游戏数据分析]WAU模型简介及WAU预测的更多相关文章
- 基于深度学习方法的dota2游戏数据分析与胜率预测(python3.6+keras框架实现)
很久以前就有想过使用深度学习模型来对dota2的对局数据进行建模分析,以便在英雄选择,出装方面有所指导,帮助自己提升天梯等级,但苦于找不到数据源,该计划搁置了很长时间.直到前些日子,看到社区有老哥提到 ...
- 用python做时间序列预测九:ARIMA模型简介
本篇介绍时间序列预测常用的ARIMA模型,通过了解本篇内容,将可以使用ARIMA预测一个时间序列. 什么是ARIMA? ARIMA是'Auto Regressive Integrated Moving ...
- TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人
简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...
- TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人。
简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...
- 转:概率主题模型简介 --- ---David M. Blei所写的《Introduction to Probabilistic Topic Models》的译文
概率主题模型简介 Introduction to Probabilistic Topic Models 转:http://www.cnblogs.com/siegfang/archive/2 ...
- spring 事件驱动模型简介
事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型:理解它的几个关键点: 首先是一种对象间的一对多的关系:最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方): ...
- Sequelize 关系模型简介
Sequelize 关系模型简介 先介绍一下本文用到的术语: 源: 调用 sequelize 中关系方法的调用者 目标: 调用 sequelize 中关系方法中的参数 比如, User.hasOne( ...
- jvm-垃圾回收gc简介+jvm内存模型简介
gc是jvm自动执行的,自动清除jvm内存垃圾,无须人为干涉,虽然方便了程序员的开发,但同时增加了开发人员对内存的不可控性. 1.jvm内存模型简介 jvm是在计算机系统上又虚拟出来的一个伪计算机系统 ...
- CSS box-flex属性,然后弹性盒子模型简介
今天做项目的时候发现一个css3的新属性flex 一.什么是flex 它的作用是能够按照设置好的规则来排列容器内的项目,而不必去计算每一个项目的宽度和边距.甚至是在容器的大小发生改变的时候,都可以重新 ...
随机推荐
- 百度Hr分享,一个合格的数据工程师简历中必备技能?
如果你是一名数据科学方面的求职者,你肯定想知道在简历上写些什么才能获得面试的机会:如果你想进入这个领域,你一定想知道具备哪些技术才能成为一名有竞争力的求职者. 在本文中,我们对Indeed中一千份数据 ...
- mgo like的两种写法
实际上都是围绕正则来写的,看大家喜欢那种写法 package main import ( "fmt" "labix.org/v2/mgo" "labi ...
- A. Elections
链接 [http://codeforces.com/contest/1043/problem/A] 题意 有n个投票人已经投个对手ai票,让你求最小的k使得k-ai加起来大于,对手得票总和 分析 一个 ...
- M1事后总结报告
设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决外卖信息的碎片化和多平台化,通过信息整合的方式来给用户提供一个更优惠更快速方便的外卖平台. 我们的客 ...
- 软件工程团队项目第一次Sprint评审
第一组:9-652 作品:炸弹人 评价:已经完成了界面的设计和基本功能,游戏已初具雏形.这款游戏可玩性很强,是个很不错的项目.但是对游戏并没有进行深入开发,不能持续的吸引玩家的兴趣,容易引起玩家的厌倦 ...
- A+B Format 思路及解题过程结果
A+B Format 思路及解题过程结果 github链接 题目 解题思路 这个题目的难点在于每三位用逗号隔开,以及带不带负号的问题.第一个问题,我的解决办法是先通过取整来取数,再通过取余来去数.第二 ...
- 【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17348313 happen-before规则介绍 Java语言中有一个"先行发生 ...
- poj 1511 Invitation Cards(最短路中等题)
In the age of television, not many people attend theater performances. Antique Comedians of Malidine ...
- c# DataGridView绑定DataTable对象之后总会多一行
DataGridView 属性 AllowUserToAddRows = false
- luogu1351 [NOIp2014]联合权值 (dfs)
有两种情况:一个点到它的父亲的父亲(要算两次).一个点的子节点之间互相到达 #include<bits/stdc++.h> #define pa pair<int,int> # ...