如何用Excel进行预测分析?
【面试题】
一个社交APP, 它的新增用户次日留存、7日留存、30日留存分别是52%、25%、14%。
请模拟出来,每天如果日新增6万用户,那么第30天,它的日活数会达到多少?请使用Excel进行分析。
【分析思路】
第1日(次日)留存用户数=第1日新增用户数*次日留存率
第2日活跃用户数=第2日新增用户数+第1日留存用户数
第3日活跃用户数=第3日新增用户数+第2日留存用户数(第2日新增用户数*第2日留存率)+第1日留存用户数
...
第30日活跃用户数=第30日新增用户数+第29日留存用户数+第28日留存用户数+...+第1日留存用户数
也就是,
第30日活跃用户数=1日-29日每天的留存用户数(第1日留存用户数+第2日留存用户数+...+第29日留存用户数)+第30日新增用户数
现在只需要计算出1日-29日每天的留存用户数就可以了,而第N日的留存用户数=第N日新增用户数(6万)*第N日留存率。所以现在的问题是需要知道每天的留存率是多少。
那么,问题就来了。题目只有3个留存率(新增用户次日留存、7日留存、30日留存分别是52%、25%、14%)。
如何根据已有的几个留存率去预测剩下那些天的留存率呢?
很简单,用excel 1分钟就能搞定。
1.用现有的数据做散点图
2.对散点图添加趋势线
趋势线有以下几种类型,应该添加哪一类型的趋势线呢?
一般来说,正常的留存曲线是一开始快速下降,然后开始缓慢下降,最后逐步平稳的曲线。
所以,留存曲线的形状会类似于下图:初始在震荡期快速下降;选择期开始缓慢下降;过了选择期就是平稳期,留存率会进入一个相对稳定的阶段。
这种留存曲线的形状和乘幂函数十分接近,所以,在这里我们用乘幂函数来对留存曲线进行拟合。同时勾选“显示公式”和“显示R平方值”。最终得到了如下曲线,函数公式为y = 0.5227x^-0.385,R² = 0.9997,可以看到拟合后的幂函数的形状和上图的留存曲线的形状几乎一样。
拓展:
你肯定想知道这个趋势线的可靠性有多大?
这就涉及到趋势线的 R 平方值。R 平方值是介于 0 和 1 之间的数值。当趋势线的 R 平方值为 1 或者接近 1 时,趋势线最可靠。如案例演示中,R的平方值达到了0.9997,因此可以说这条趋势线可靠性非常大。
要获得最精确的预测,为数据选择最合适的趋势线非常重要。
那么,什么情况下选用什么样的趋势线呢?
指数:指数趋势线适用于速度增加越来越快的数据。
线性:线性趋势线是适用于简单线性数据集合的最佳拟合直线。如果数据点的构成的趋势接近于一条直线,则数据应该接近于线性。线性趋势线通常表示事件以恒定的比率增加或减少。
对数:如果数据一开始的增加或减小的速度很快,但又迅速趋于平稳,那么对数趋势线则是最佳的拟合曲线。
多项式:多项式趋势线是数据波动较大时使用的曲线。
乘幂:乘幂趋势线是一种适用于以特定速度增加的曲线。但是如果数据中有零或负数,则无法创建乘幂趋势线。
移动平均:移动平均趋势线用于平滑处理数据中的微小波动,从而更加清晰地显示了数据的变化的趋势。(在股票、基金、汇率等技术分析中常用)
3.计算第n天留存率
拟合出留存曲线后, 我们就可以根据拟合的函数公式(y = 0.5227x^-0.385)去计算次日到30日的留存率。
也就是把x=1,x=2…x=30,分别代入函数公式,这里可以借助Excel的power幂函数,求出结果。如下图,可以看到按照模型函数公式计算出来的留存率,即模型留存率与给定的留存率几乎完全一致(黄色的行)。
4.计算30天后日活数
通过上面的步骤,我们已经得到了每天的留存率。接下来我们就可以计算第30天的日活用户数有多少。
第1日(次日)留存用户数=第1日新增用户数*次日留存率
第2日活跃用户数=第2日新增用户数+第1日留存用户数
第3日活跃用户数=第3日新增用户数+第2日留存用户数(第2日新增用户数*第2日留存率)+第1日留存用户数
...
第30日活跃用户数=第30日新增用户数+第29日留存用户数+第28日留存用户数+...+第1日留存用户数
也就是,
第30日活跃用户数=1日-29日每天的留存用户数(第1日留存用户数+第2日留存用户数+...+第29日留存用户数)+第30日新增用户数
(1)在下图Excel步骤1的地方是题目的设定,每天固定新增用户数为6万
在下图步骤2的地方算出1日-29日每天的留存用户数,也就是第N日新增用户数(6万)*第N日留存率(F列对应的留存率)。
(3)下图步骤3将这一列的值求和,就是第30日活跃用户数=1日-29日每天的留存用户数+第30日新增用户数。
5.总结
Excel里进行预测分析的2种办法:
2)其他数据如何预测?先画散点图,然后添加趋势线和公式
推荐:人工智能时代的通用能力
如何用Excel进行预测分析?的更多相关文章
- 如何用SPSS做联合分析
如何用SPSS做联合分析 如果产品的描述是由几个属性特征决定的,比如说mp3的音质.外形.容量.价格等等,商家为了确定哪个属性对消费者的影响最大,以及预测什么样的属性组合最受消费者的欢迎,选择的办法应 ...
- 数据可视化之powerBI技巧(六)在PowerBI中简单的操作,实现复杂的预测分析
时间序列预测就是利用过去一段时间内的数据来预测未来一段时间内该数据的走势,比如根据过去5年的销售数据进行来年的收入增长预测,根据上个季度的股票走势推测未来一周的股价变化等等. 对于大部分人来说,这是个 ...
- 编译原理实习(应用预测分析法LL(1)实现语法分析)
#include<iostream> #include<fstream> #include<iomanip> #include<cstdio> #inc ...
- Python中利用LSTM模型进行时间序列预测分析
时间序列模型 时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征.这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺 ...
- 时间序列 预测分析 R语言
在对短期数据的预测分析中,我们经常用到时间序列中的指数平滑做数据预测,然后根据不同. 下面我们来看下具体的过程 x<-data.frame(rq=seq(as.Date('2016-11-15' ...
- 语法设计——基于LL(1)文法的预测分析表法
实验二.语法设计--基于LL(1)文法的预测分析表法 一.实验目的 通过实验教学,加深学生对所学的关于编译的理论知识的理解,增强学生对所学知识的综合应用能力,并通过实践达到对所学的知识进行验证.通过对 ...
- 如何用excel urldecode解码把url编码转为汉字?
统计分析可以反映出网站运营的情况,并根据实际作出相应的调整,是站长必需的基础技能.ytkah感觉最好用的是谷歌统计,里面有个搜索关键词及对应受访页面,这个功能对优化用处很大,但大家都知道访问不太顺畅. ...
- FIRST集合、FOLLOW集合、SELECT集合以及预测分析表地构造
FIRST集合.FOLLOW集合.SELECT集合以及预测分析表地构造 FIRST集合的简单理解就是推导出的字符串的开头终结符的集合. FOLLOW集合简单的理解就对于非终结符后面接的第一个终结符. ...
- 预测分析建模 Python与R语言实现
预测分析建模 Python与R语言实现 目录 前言 第1章 分析与数据科学1第2章 广告与促销10第3章 偏好与选择24第4章 购物篮分析31第5章 经济数据分析42第6章 运营管理56第7章 文本分 ...
随机推荐
- 使用onload和setTimeout、setInterval来实现当前的时间
1.在body里面使用onload和在函数中使用setTimeout来实现当前的日期时间不断变化 2.在script中直接是用setInterval实现当前实现的日期时间不断变化 <!DOCTY ...
- 2020年的六种编程语言排名中,java排第几只有不到1%的人知道
前言 编程语言是开发的基础.有不同的类型和特征,并且开发人员针对不同的场景选择正确的语言,但是您知道使用哪种语言吗?中国和世界各地有多少开发人员正在使用它?他们的排名是多少?快来看看您知道多少个列表! ...
- 第五天.权限批量录入/更新、信号、Django日志配置
1. 角色.菜单.权限的增删该查 1. ModelForm增删改查 2. 增加和编辑使用同一个视图函数 Form() 1. 生成获取用户输入的标签 2. 对用户输入的内容做校验 3. 保留输入的内容同 ...
- linux根据进程查端口,根据端口查进程
[root@test_environment src]# netstat -tnllup 能显示对应端口和进程 Active Internet connections (only servers) ...
- Mac上使用Docker Desktop启动Kubernetes,踩坑后终于搞掂
1 前言 Kubernetes又简称k8s,是Google开源的容器集群管理系统,最近也是火热.闲来无事(为了发文),捣鼓了一下,在Mac上搭建Kubernetes,遇到一些坑,也记录一下. 另外,D ...
- Python 简明教程 --- 21,Python 继承与多态
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序不是年轻的专利,但是,它属于年轻. 目录 我们已经知道封装,继承和多态 是面向对象的三大特征,面 ...
- HDU 2236 无题Ⅱ
HDU 2236 无题Ⅱ 题目大意 这是一个简单的游戏,在一个\(n*n\)的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数中的最大值和最小值的差值最小. solution 暴枚\(i ...
- 「疫期集训day8」 雪原
可恶的红军,他们嘴上说着以人民为中心,被地里烧杀强掠同族人----为我们祝福吧,伟大的母亲河,为了沙皇------窝瓦河(伏尔加河)中坚守的俄罗斯白军 又是考爆的一天,然俄前两题都该A的.T1签到题一 ...
- CF796C Bank Hacking 题解
洛谷链接 题目 Although Inzane successfully found his beloved bone, Zane, his owner, has yet to return. To ...
- 漫画:Integer 竟然有 6 种比较方式?
代码测试 public class IntegerTest { public static void main(String[] args) { Integer i1 = 127; Integer i ...