如何用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章 文本分 ...
随机推荐
- 【总结】Asp.Net Mvc 后台控制器获取页面发来的参数类型
接收各种参数(普通参数,对象,JSON, URL) 待续...
- (私人收藏)2019WER积木教育机器人赛(普及赛)解决方案-(全套)获取能源核心
2019WER积木教育机器人赛(普及赛)解决方案-(全套)获取能源核心 含地图,解决程序,详细规则,搭建方案EV3;乐高;机器人比赛;能力风暴;WER https://pan.baidu.com/s/ ...
- JavaScript动画实例:递归分形图动态展示
在“JavaScript图形实例:SierPinski三角形” 和“JavaScript图形实例:Levy曲线及其变形”等文章中我们介绍了通过递归生成分形图形的方法.我们可以将绘制的分形图形每隔一定的 ...
- 推荐一款ui架构--frozenui
首页是这样定义的 移动框架 重磅出击 简单易用,轻量快捷,为移动端服务的前端框架 链接地址 http://frozenui.github.io/base.html#layout
- CSS3 实现复杂的背景图案
灵活的背景定位 实现效果: 将背景图定位到距离容器底边 10px 且距离右边 20px 的位置. background-position 方案 代码: <div>海盗密码</div& ...
- day53 html收尾
目录 一.解决浮动带来的影响 二.溢出属性 三.定位 四.验证浮动和定位是否脱离文档流 五.z-index模态框 六.透明度opacity 七.js简介 一.解决浮动带来的影响 块级标签内的浮动如果该 ...
- 2020年Java基础高频面试题汇总(1.4W字详细解析,你能遇到的都在这了)
1. Java语言有哪些特点 (1)简单易学.有丰富的类库 (2)面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) (3)与平台无关性(JVM是Java跨平台使用的根本) (4)可靠安全 ...
- 攻防世界FlatScience
访问robots.txt发现 admin.php和login.php 在admin.php和login.php分别尝试注入 发现login.php页面存在注入,并且根据报错得知数据库类型为sqlite ...
- WeChat小程序开发-初学者笔记(一)
WeChat小程序开发学习第一天: 完成学习目标: 1.安装并了解Wechat小程序的基本环境, 2.可以利用已学知识的结合简单实现helloWorld界面. 学习过程: 1.首先在微信平台上进行相关 ...
- TB6560电机驱动器参数设置
TB6560电机驱动器参数设置 最近接触了一些步进电机的开发,整理了一些参数设置的经验,希望能帮助到有需要的人儿~ 步进电机主要按一定的给电规律,给对应的绕组响应的电信号,电机将按一定的方向运行,而且 ...