mysql日活统计函数_如何通过简化日活模型,预估一个产品的日活(DAU)?

本文笔者通过简化日活模型,粗略地估算出未来一段时间的产品日活规模。进而通过日活的规模,再去估算一些潜在收益,以及运营成本等等数据。

298e2cb91a6e4ee5f7b8c4b95f9ad787.gif

这段时间,经常有人问到以下的问题:按照现在的推广和留存,我们在未来最多能到达多少日活?

为了三个月后达到预定的日活,我们需要每天都少推广?

一个产品在某个国家,得达到多少留存之后,推广和收益才能打正(ROI为正)?

其实这些问题本质上,都是在回答一个问题,即:如何预估一个产品的日活?

问题应该有很多解法,提供一个简单思路,总结如下。

日活会受到很多因素的影响,产品迭代,运营活动,推广的变化等等都会影响到日活。当然这些因素中,有的影响较小,有的暂时无法预估。因此在预测的过程中,我们可以将一些影响不大的因素,剔除出去,从而简化得到一个可计算的状态。(这个简化到可计算的过程中,其实就叫数学建模。)

因此为了计算,我们首先构建日活的一个简单数学模型。

建立日活的数学模型

影响日活的因素中,最本质的其实是两个,一个是每日新增用户数,一个是新增用户的留存率。

某一天的日活,我们可以看作是,当天的新增,加上前一天的新增的次日留存用户,再加上大前天的新增的二日留存用户……

以此类推,我们可以认为日活是“当天的新增用户和此前每一天新增用户在当天的留存用户之和”,基于此,我们可以用一个很简单的公式表达日活。

DAU(n)=A(n)+A(n-1)R(1)+A(n-2)R(2)+… …+A(1)R(n-1)

其中,DAU(n)为第n天的日活,A(n)为第n天的新增,R(n-1)为新增用户在第n-1天后的留存率。如果我们假设,每日用户的新增是一个固定的数值A,则公式可简写为:

DAU(n)=A(1+R(1)+R(2)+… …+R(n-1))

上述公式可以看成是日活的一个简单的数学模型。从这个模型中,我们可以看出,新增A是一个较为确定的数值,另一部分:

1+R(1)+R(2)+… …+R(n-1)

留存之和的确定稍微有些麻烦。可以用下述的方法,预估留存。

如何预估留存

留存率是一个产品最为核心的指标了,下图是一个产品的留存率衰减曲线

298e2cb91a6e4ee5f7b8c4b95f9ad787.gif

1-30日留存率衰减曲线

由图中,我们可以看出:留存率的衰减曲线,非常类似幂函数的曲线,其实,在业内绝大部分产品的留存衰减曲线,基本都是符合幂函数曲线。

基于此,我们可以通过幂函数来近似拟合留存率的衰减曲线,也就可以顺利的预估出日活模型中需要的留存之和。

一般在预估一个产品的留存之前,我们会有一些先验的数据基础,如果你的产品已经上线来一段时间,可以使用历史数据作为基础。如果产品还未上线,没有历史的数据,因为不同类型产品的留存和衰减速度都不太一样,因此可以用业内同类型的产品的大概留存数据作为拟合预测的参考。

因此,留存曲线拟合基本会遇到两种情况:已经知道了若干天的留存,预估后续的留存?

不知道具体每天的留存,只知道次留,周留,月留存等数据,预估每一天的留存。

这两个情况本质上属于同一个问题,这里以第二种情况为例,简单说下如何操作。曲线拟合的方法有很多,这里我介绍一个最为简单的方式,就是利用excel来做一个简单的拟合计算,具体步骤如下:

step1

假设我们知道了一个产品次日留存,7日留存,30留存如下:

298e2cb91a6e4ee5f7b8c4b95f9ad787.gif

某产品若干日留存

step2

在excel中按照对应留存天数,写出留存率,并画出散点图:

298e2cb91a6e4ee5f7b8c4b95f9ad787.gif

留存散点图

step3

在excel图表对上述散点添加趋势线,并在趋势线选项中,选择幂函数,并选择显示幂函数公式

298e2cb91a6e4ee5f7b8c4b95f9ad787.gif

基于散点拟合曲线

得到的幂函数为:

y=0.4861*x^(-0.435),其中x为对应的天数,y为对应天数的留存率。

step4

基于得到的幂函数公式,可以求的所有对应天数的留存率。

计算得到预估的日活

基于得到的幂函数,算出对应的留存率之后,就可以简单求和得到,带入日活公式中:

DAU(n)=A(1+R(1)+R(2)+… …+R(n-1))

这样就可以通过预估的每日新增,得到在未来第n天日活所处的水平。

总结&后记

以上通过简化日活模型,仅考虑新增和留存对于日活的影响(其它影响,也都是通过新增和留存间接对日活产生影响的),可以粗略的估算出未来一段时间的产品日活规模。

进而通过日活的规模,再去估算一些潜在收益,以及运营成本等等数据。上述计算一定存在误差,并且不能满足所有的场景,但整体的思路可以作为参考,应该能搞解决大部分相关问题了。

我们做了一个小程序,输入新增,留存等数据直接预估日活,计算方法就是本文的计算方式。

作者:南村小付,微信公众号:南村小付,快手高级产品经理,曾任职阿里,欢聚时代,7年互联网产品设计运营经验。

本文由用户@青峰侠发布于新媒体运营,未经许可,禁止转载。

题图来自Unsplash, 基于CC0协议。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过SPANN方式将Spring&Quartz与自定义注释集成

在上一篇文章中 ,我们演示了如何在Spring容器中创建和配置带批注的Quartz作业。 我们使用了一个类级别的注释将一些元数据添加到实现Quartz Job的bean中。 批注定义了作业的名称,组及其cron表达式。 后来,大部分代码专用于处理该批注&#xf…

Linux学习之常用技巧

▌基础 学习 Bash 。你可以man bash来看看bash的东西,并不复杂也并不长。你用别的shell也行,但是bash是很强大的并且也是系统默认的。(学习zsh或tsch只会让你在很多情况下受到限制) 学习 vim 。在Linux下,基本没有什么…

java开发一个完整的秒杀与竞价网上商城

导读:网络商城近年来非常火热的一种经营方式,与现实生活中的商店的差别是利用电子商务的一些手段,从而沟通消费者与商家进行商品买卖的虚拟商店,减少买家卖家间的多层环节,减少运输的成本以及层层代理过程中的差价,这就有巨大的价格优势从而带来巨大的发展空间。网络商城…

precede和previous_Previous Analyses of Hungarian Phrase Structure

摘要:The most obvious empirical basis of the establishment of phrase structure rules is the observation of word order phenomena. Since in a large set of Hungarian sentences any permutation of the major constituents is grammatical, the conclusion…

判断存储过程是否存在某个参数名

select * from syscolumns where id (select id from sysobjects where name存储过程名) select * from syscolumns where id object_id(存储过程名) and name参数名 以上只是拿出参数列表,还要在WHERE 后加 NAMEHEHE 你想查的字段名。转载于:https://www.cnblogs.c…

罐中研讨会:设置JBoss BPM Suite全天研讨会

是否在寻找一种简单的方法来宣传,展示或演示JBoss业务流程管理套件(BPM Suite)产品的入门难度? 别无所求,因为我们召集了这个研讨会,因此您可以围绕JBoss BPM Suite构建一个晚上,半天或全天的…

java实现一个电子书下载系统

导读:电子书代表人们所阅读的数字化出版物, 从而区别于以纸张为载体的传统出版物, 电子书是利用计算机技术将一定的文字、图片、声音、影像等信息, 通过数码方式记录在以光、电、磁为介质的设备中, 借助于特定的设备来读取、复制、传输,已经为人们所熟悉。 众所周知,自20世…

常用FTP命令 1. 连接ftp服务器

1. 连接ftp服务器格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。 2. 下载文件 下载文件通常用get和mget这两条命令。a) get 格式…

java实现影视创作论坛

导读:随着时代的发展,互联网的出现,给传统影视行业带来的最大便利就是,方便了影视从业人员以及爱好者的交流和互动,而为用户提供一个书写影评,阅读影评以及回复影评的平台,以影评为载体来使用户感受影评、解读影评的是互联网在传统影视行业下应运而生的产物。 所谓的影视…

java 编码 js解码_js和java中URI的编码和解码

js中对文字进行编码主要有三个函数:escape,encodeURI,encodeURIComponent;对应解码为:unescape,decodeURI,decodeURIComponent这里不在说基本概念(基本概念可以参考w3cohool,里面叙述…

一文教你使用java开发一款推箱子游戏

导读:社会在进步,人们生活质量也在日益提高。高强度的压力也接踵而来。社会中急需出现新的有效方式来缓解人们的压力。此次设计符合了社会需求,Java推箱子游戏可以让人们在闲暇之余,体验游戏的乐趣。具有操作简单,易于上手的特点。…

java序列化深克隆_克隆可序列化和不可序列化的Java对象

java序列化深克隆开发人员经常依靠3d方库来避免重新发明轮子,尤其是在Java世界中,Apache和Spring这样的项目如此盛行。 在处理这些框架时,我们通常很少或根本无法控制其类的行为。 这有时会导致问题。 例如,如果您想深克隆一个不提…

ukt机器人_doc/readme/feishu.md · 贫道法号-乱来/PrometheusAlert - Gitee.com

PrometheusAlert全家桶飞书配置说明-----------------飞书机器人目前支持V1和V2两个版本,区别在于地址的不同V1地址:https://open.feishu.cn/open-apis/bot/hook​/​xxxxxxxxxxxxxxxxxxV2地址:https://open.feishu.cn/open-apis/bot/v2/hook…

uiautomator的坑和AAPT命令方式启动一个应用程序

最近在使用UIautomator完成公司的一个主流程的自动化,因为不适用H5和IOS所以会放弃这个工具的使用,现在记录在使用uiautomator的一些问题: 案列1:使用命令去启动要运用的apk包 使用命令方式启动,可以使用SDK中自带的aa…

一文教你用java实现即时通讯软件的设计(附下载源码)

导读:即时通讯软件即所谓的聊天工具,其主要用途是用于文字信息的传递与文件传输。使用eclipse作为即时通讯软件的开发工具,使用Socket建立通讯渠道,多线程实现多台计算机同时进行信息的传递,swing技术等进行实际开发相…

在Python,Java和Kotlin中标记参数和重载

在多种语言之间跳来跳去可以帮助您注意到不同语言的习惯用法和最佳做法之间的某些差异。 比较有趣的差异之一与一个函数执行多项操作有关。 Python 我们先来看一下Python。 Python实际上无法重载,因为用相同的名称定义一个新的函数/方法只会覆盖前一个函数/方法。 …

vue 扫码页面限制区域_Vue.js 单页面多路由区域操作的实例详解

单页面多路由区域操作在一个页面中有两个及以上的区域,需要通过设置路由的index.js,来操作这些区域的内容app.vue 中设置:index.js中设置:import vue from vueimport router from vue-routerimport hello from /components/helloi…

Divide and conquer:Drying(POJ 3104)

烘干衣服 题目大意:主人公有一个烘干机,但是一次只能烘干一件衣服,每分钟失水k个单位的水量,自然烘干每分钟失水1个单位的水量(在烘干机不算自然烘干的那一个单位的水量),问你最少需要多长时间烘…

c#string倒数第二位插入字符_c#string倒数第二位插入字符_C#利用String类的IndexOf、LastIndexOf、...

一、String.IndexOfString.IndexOf 方法 (Char, Int32, Int32)报告指定字符在此实例中的第一个匹配项的索引(从0开始)。搜索从指定字符位置开始,并检查指定数量的字符位置。String.IndexOf(value, startIndex, count)参数value:要查找的 Unicode 字符。s…

使用所学的javaWeb知识,实现一个小型的记账管理系统

导读:控制过度消费通过记账,你会很清楚地知道自己的钱都用来做了什么,关于每分钱的去处心中都明明白白, 哪些是必要的开销,哪些是非理性的、应该避免的花费,分别占有多大的比例。有专家统计,个人 或者家庭的年节余比例要达到收人的40%才是正常的。参照这样的比例,对你找…