js合并同类数组里面的对象_通过同类群组保留估算客户生命周期价值

js合并同类数组里面的对象

This is Part I of the two-part series dedicated to estimating customer lifetime value. In this post, I will describe how to estimate LTV, on a conceptual level, in order to explain what we’re going to be doing in Part II with the Python code.

这是由两部分组成的系列的第一部分,该系列专门用于估计客户生命周期价值。 在本文中,我将在概念上描述如何估计LTV,以解释我们将在第二部分中使用Python代码进行的工作。

First of all, why LTV? There are two reasons: creating a benchmark for customer acquisition costs (CAC) and comparing customers, e.g. if we’re targeting those who spend more or less than an average customer.

首先,为什么要使用LTV ? 原因有两个:建立客户获取成本(CAC)基准并比较客户,例如,如果我们针对的是那些花费高于或少于平均客户的客户。

Many sources talking about using churn or retention to estimate customer lifetime value (LTV), and while the core idea remains the same, approaches to its calculation differ dramatically. So, while any analyst will benefit from reading this article, its primary objective is to explain how historical retention data can be used to estimate LTV for customers. We are not going to use statistical techniques to estimate churn and build our predictions. Instead, we will be making use of historical retention, which is an easier place to start with.

许多消息来源都在谈论使用流失率或保留率来估计客户生命周期价值(LTV),尽管核心思想保持不变,但其计算方法却大不相同。 因此,尽管任何分析师都将从阅读本文中受益,但其主要目的是解释如何使用历史保留数据估算客户的LTV 。 我们将不会使用统计技术来估计用户流失并建立我们的预测。 相反,我们将利用历史保留,这是一个更容易开始的地方。

Why retention? The issue with customer lifetime value is the customer lifetime. If we’re talking subscription-based service, an estimate for customer brought-in value is recurring revenue (RR), or the amount a customer pays for a subscription. If your customer has a possibility to skip a period, however, do not forget to adjust for that (estimate the average % of skips).

为什么保留 ? 客户生命周期价值的问题是客户生命周期 。 如果我们在谈论基于订阅的服务,则对客户带来的价值的估算是经常性收入(RR),即客户为订阅支付的金额。 但是,如果您的客户有可能跳过某个时间段,请不要忘记对此进行调整(估计跳过的平均百分比)。

What we do not know is how long a new customer will stay within the business, so we are trying to make an educated guess based on earlier acquired customers. It is often suggested that we calculate lifetime as an overall metric for the whole customer base, which gives a confusing average: across customers who could have spent years with the business, at least potentially, and those customers who joined last week or yesterday. At the same time, while older cohorts are good for analysis, we’d like our metrics to be actionable, and hence, to make estimates for younger cohorts. A retention matrix, or a curve, visually represent how many of the acquired customers stayed with the business, continuing to generate revenue. It is based on actual data, so you can start identifying patterns and approximate those for newer customers. So, how?

我们不知道新客户将在企业中停留多长时间,因此我们正在尝试根据较早获得的客户做出有根据的猜测。 通常建议我们将生命周期作为整个客户群的总体指标来计算,这会产生令人困惑的平均水平:可能已经花了数年时间(至少可能是花了数年时间)的客户,以及上周或昨天加入的客户。 同时,虽然年龄较大的人群很适合进行分析,但我们希望我们的指标可行,因此可以对年龄较小的人群进行估算。 保留矩阵或曲线直观地表示有多少被收购的客户留在公司,并继续产生收入。 它基于实际数据,因此您可以开始识别模式并为新客户估算模式。 又怎样?

Cohorts and retention matrixBecause customers join the business at different times, there should be a way to “normalize” their retention. A simple example: 10% of the customers who joined a year ago are still with the business; however, 90% of last month’s customers are still with us. By no means, this implies that customers who joined last month are better (or worse) than the last year’s customers. They simply had less time to show how “sticky” or valuable your business is for them.

çohorts和保留矩阵因为客户在不同的时间加盟商,应该有一个方法来“正常化”的保留。 举一个简单的例子 :一年前加入的客户中有10%仍在使用该业务; 但是,上个月90%的客户仍在我们身边。 这绝不意味着上个月加入的客户比去年的客户更好(或更差)。 他们只是很少的时间来展示您的业务对他们来说有多“粘”或有价值。

For this reason, we can (and should) split customers into cohorts (groups), based on the time they joined. Normally, cohorts and their retention are analyzed looking on a retention matrix, or similarly, a retention curve. In the matrix below, each square represents the proportion of originally acquired users that moved (re-ordered, re-subscribed) in the next month. For simplicity, I colour-coded them, as also shown below.

因此,我们可以(并且应该)根据客户加入的时间将其分为多个群组。 通常,在保留矩阵或相似的保留曲线上分析队列及其保留。 在下面的矩阵中,每个方块代表下个月移动(重新排序,重新订阅)的最初获得用户的比例。 为简单起见,我对它们进行了颜色编码,如下所示。

Image for post
Figure 1: Sample scale for all the colours in this post — from yellow (~ 0–15%) to darker green (~90–100%)
图1:本文中所有颜色的样本比例-从黄色(〜0–15%)到深绿色(〜90–100%)
Image for post
Figure 2: Retention Matrix; y-axis, acquisition period (month), x-axis, tenure, or the time passed after the acquisition; for colour, see Figure 1.
图2:保留矩阵; y轴,获取时间(月),x轴,任期或获取后经过的时间; 有关颜色,请参见图1。

There are 2 axes: time joined, or the acquisition month (y-axis), and subsequent periods, or tenure (x-axis, weeks, months, years, whatever makes sense for the business). The first thing you would notice in most of the retention matrices is that retention tends to fade away as the tenure increases, although the rate might be different. The matrix alone can be used to compute the average actualized lifetime for a cohort, or an average amount of time a customer in a cohort used your product. This calculation simply the sum of retention by row.

有2个轴:加入时间或获取月份 (y轴)以及后续期间或任期 (x轴,周,月,年,对业务有意义)。 在大多数保留矩阵中,您会注意到的第一件事是,保留期会随着任期的增加而逐渐消失,尽管比率可能有所不同。 单独的矩阵可用于计算同类群组的平均实际寿命,或同类群组中的客户使用您的产品的平均时间。 此计算只是保留的总和。

Another thing that you will quickly notice here is that the matrix will always be half-empty, and our first aim is to figure out the question marks below:

您很快会在这里注意到的另一件事是矩阵将始终为半空,我们的首要目标是找出以下问号:

Image for post
Figure 3: The what do we need to estimate?
图3:我们需要估算什么?

Obviously, that’s because younger cohorts have had a lesser actualized lifetime. Ideally, we’d love to know the lifetime (and value) for them. And still, how?

显然,这是因为年轻的人群实际寿命较短。 理想情况下,我们很想知道他们的生命(和价值)。 而且,如何?

ExtrapolationOne of the easy approaches would be to fill the values for newer customers based on averaging of previous cohorts’ performance. Because averaging retention directly might be too rough and disconnected from actuals for newer cohorts, we can make use of marginal retention. That’s different from cohort retention as it’s retention period-over-period (e.g., month-over-month or week-over-week). The period will depend on your business cycle.

简单的方法电子 xtrapolation之一将是填补值基于以前的同伙性能的平均较新的客户。 因为直接平均保留可能太粗略,并且对于较新的同类而言与实际不符,所以我们可以利用边际保留。 这与同类群组的保留不同,因为不同时期的保留期不同(例如,逐月或逐周)。 期限取决于您的业务周期。

Image for post
Figure 4: Marginal Retention, describes how many customers that paid for the service in a previous period “migrated” into the next one, tends to increase as the tenure increases, and ideally approaches 100%
图4:边际保留率,描述了在前一个时期为服务付费的客户“迁移”到下一个,随着任期的增加趋于增加,理想情况下接近100%

Once we know the marginal retention for cohorts that have their values actualized, we “drag them down” to extrapolate for younger cohorts, element by element. As an option, we can be using a simple average of the last N cohorts, starting from the earliest cohort, or the first rows in the matrix below. This way, you’ll have a moving average of N rows for row numbers N and higher, and an average of all previous values for rows N-1 and lower. You can use it as a blueprint and make it more convoluted, including seasonality aspects, your assumptions about future changes, etc.

一旦我们知道了实现了其价值的同类群体的边际保留率 ,我们就会“拖拉他们”以逐个元素推断年轻的同类群体。 作为一种选择,我们可以使用从最早的队列或下面矩阵的第一行开始的最后N个队列的简单平均值。 这样,行号为N或更高的行将具有N行的移动平均值,而行号N-1或更低的行将具有所有先前值的平均值。 您可以将其用作蓝图,并使其更加复杂,包括季节性因素,对未来变化的假设等。

Image for post
Figure 5: Extrapolate marginal retention top-bottom, element by element
图5:从上到下外推边际保留

As a result, your matrix will be filled with actual values of marginal retention above the diagonal and estimates below the diagonal. In our case, the latter is moving averages with a window of min 1, max N, depending on a row number.

结果,矩阵将被对角线上方的边际保留的实际值填充,对角线下方的估算值被填充。 在我们的例子中,后者是窗口最小为1,最大为N的移动平均数,具体取决于行数。

Image for post
Figure 6: Marginal retention extrapolated to fill the full matrix
图6:外推边际保留以填充整个矩阵

After you’ve got the whole square matrix populated, we can extrapolate retention. It can be done element-wise by “dragging it right”: 1) multiplying the last value in the retention matrix by the next-column value in the marginal retention matrix, which will update the retention estimate in a retention matrix 2) repeating the same procedure for the entire row, taking the last retention estimate in a row and multiplying it by the next value in a marginal retention matrix.

在填充整个方阵后,我们可以推断保留率。 可以通过“向右拖动”来 逐个元素地完成:1)将保留矩阵中的最后一个值乘以边际保留矩阵中的下一个列值,这将更新保留矩阵中的保留估计值2)重复执行对整个行执行相同的过程,将一行中的最后一个保留估计值乘以边际保留矩阵中的下一个值。

Image for post
Figure 7: Combine extrapolated marginal retention and cohort retention to fill the cohort retention matrix
图7:结合外推的边际保留率和队列保留率以填充队列保留矩阵

This way, we have a fully populated retention matrix with actual values above the diagonal and the estimates below the diagonal. Average lifetime estimate for a cohort is just a sum of retentions for the cohort. (If you want me to describe why it is true, please comment below or highlight and comment, I would like to keep the current post more to the point).

这样,我们得到了一个完全填充的保留矩阵,其实际值在对角线以上,而估计值在对角线以下。 同类群组的平均寿命估算值只是该同类群组的保留人数之和。 ( 如果您想让我描述为什么如此,请在下面发表评论或突出显示并发表评论,我想让当前的帖子更多地指向重点 )。

ValueThe value we’re talking about should ideally reflect the recurring amount generated by a customer, net of operational costs associated with delivering a service or a product to a customer. For example, if you are in a delivery business, you’d want to exclude delivery costs. If you need to maintain infrastructure for a customer, you’d exclude that. Any discounts that typically apply to a payment, should be considered, so we can arrive at gross margin. Be careful though, if you have first-time customer offers, make sure to not extrapolate those discounts into the future as it will significantly lower your lifetime value.

价值 ,我们正在谈论的价值大约应该理想地反映客户产生的重复量,用提供服务或产品给客户相关的运营成本 。 例如,如果您从事送货业务,则希望排除送货费用。 如果您需要维护客户的基础架构,则可以将其排除在外。 应该考虑通常适用于付款的任何折扣,这样我们才能得出毛利率。 但是,请务必小心,如果您有首次客户优惠,请确保不要将这些折扣推算到将来,因为这将大大降低您的终生价值。

If the above seems complicated, consider starting with gross revenue instead of margin and work from there. I see value in starting with a top line and working your way to a gross margin, so further on you can make educated assumptions about revenue dynamics in your business, given its different components. It can also be a good starting point for LTV modelling if you want to assume the impact of your marketing or product improvement efforts.

如果上述情况看起来很复杂,请考虑从总收入而不是利润开始,然后从那里开始。 我认为从营收开始并不断提高毛利率是很有价值的,因此,鉴于其组成部分的不同,您可以就业务收入动态做出有根据的假设。 如果您想承担营销或产品改进工作的影响,这也可以成为LTV建模的一个很好的起点。

Life Time ValueAfter we’ve nailed the above, lifetime value estimate is just a product of lifetime and value, on a cohort basis. You can take a simple or weighted average to give more weight to newer cohorts or cohorts with more customers.

大号 IFE时间价值后,我们已经钉在上面,终身价值估计只是一个寿命和价值的产品,队列基础上。 您可以采用简单或加权平均值,以将更多权重分配给较新的同类群组或具有更多客户的同类群组。

And there we have it!

我们终于得到它了!

In essence, we’ve made use of cohort retention and marginal retention to extrapolate the former onto newer cohorts. An interesting fact that is not always apparent is that lifetime will be a sum of retention for a cohort, across the tenure axis.

本质上,我们利用了同类群组保留和边际保留,将前者外推到较新的同类群组中。 一个有趣的事实(并非总是很明显)是,终身将是整个研究小组在任期轴上的保留总和。

Sources: there’s a very straightforward and comprehensive explanation of the topic in this blog post

来源:此博客文章对此主题有非常直接而全面的解释

Thanks for reading this post and getting this far! Hope it was helpful and if you have any comments, please leave them below.

感谢您阅读这篇文章,并走了很远! 希望对您有所帮助,如果您有任何意见,请在下面保留。

You can also contact me on LinkedIn: https://www.linkedin.com/in/areusova/ (mention that you’re coming from this Medium post).

您也可以在LinkedIn上与我联系: https : //www.linkedin.com/in/areusova/ (提及您来自此Medium帖子)。

Or Twitter https://twitter.com/khunreus.

或Twitter https://twitter.com/khunreus 。

翻译自: https://medium.com/swlh/estimating-customer-lifetime-value-via-cohort-retention-de960e2ee5b1

js合并同类数组里面的对象

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

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

相关文章

C#解析HTML

第一种方法:用正则表达式来分析 [csharp] view plaincopy 转自网上的一个实例:所有的href都抽取出来: using System; using System.Net; using System.Text; using System.Text.RegularExpressions; namespace HttpGet { c…

com编程创建快捷方式中文_如何以编程方式为博客创建wordcloud?

com编程创建快捷方式中文Recently, I was in need of an image for our blog and wanted it to have some wow effect or at least a better fit than anything typical we’ve been using. Pondering over ideas for a while, word cloud flashed in my mind. 💡Us…

ETL技术入门之ETL初认识

ETL技术入门之ETL初认识 分类: etl2014-07-10 23:11 3021人阅读 评论(2) 收藏 举报数据仓库商业价值etlbi目录(?)[-] ETL是什么先说下背景知识下面给下ETL的详细解释定义现在来看下kettle的transformation文件一个最简单的E过程例子windows环境 上图左边的是打开表…

ActiveSupport::Concern 和 gem 'name_of_person'(300✨) 的内部运行机制分析

理解ActiveRecord::Concern: 参考:include和extend的区别: https://www.cnblogs.com/chentianwei/p/9408963.html 传统的模块看起来像: module Mdef self.included(base)# base(一个类)扩展了一个模块"ClassMethods", b…

Python 3.8.0a2 发布,面向对象编程语言

百度智能云 云生态狂欢季 热门云产品1折起>>> Python 3.8.0a2 发布了,这是 3.8 系列计划中 4 个 alpha 版本的第 2 个。 alpha 版本旨在更加易于测试新功能和 bug 修复状态,以及发布流程。在 alpha 阶段会添加新功能,直到 beta 阶…

基于plotly数据可视化_如何使用Plotly进行数据可视化

基于plotly数据可视化The amount of data in the world is growing every second. From sending a text to clicking a link, you are creating data points for companies to use. Insights that can be drawn from this collection of data can be extremely valuable. Every…

ESLint简介

ESLint简介 ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码的风格。如果每次在代码提交之前都进行一次eslint代码检查,就不会因为某个字段未定义为undefined或null这样的错误而导致服务崩溃&…

数据科学与大数据是什么意思_什么是数据科学?

数据科学与大数据是什么意思Data Science is an interdisciplinary field that uses a combination of code, statistical analysis, and algorithms to gain insights from structured and unstructured data.数据科学是一个跨学科领域,它结合使用代码,…

C#制作、打包、签名、发布Activex全过程

一、前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信、调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现。由于本人主要擅长C#,自然本文给出了用C#实现的范例,本文的预期…

用Python创建漂亮的交互式可视化效果

Plotly is an interactive Python library that provides a wide range of visualisations accessible through a simple interface.Plotly是一个交互式Python库,通过简单的界面即可提供广泛的可视化效果。 There are many different visualisation libraries avai…

Hadoop 2.0集群配置详细教程

Hadoop 2.0集群配置详细教程 前言 Hadoop2.0介绍 Hadoop是 apache 的开源 项目,开发的主要目的是为了构建可靠,可拓展 scalable ,分布式的系 统, hadoop 是一系列的子工程的 总和,其中包含 1. hadoop common &#xff…

php如何减缓gc_管理信息传播-使用数据科学减缓错误信息的传播

php如何减缓gcWith more people now than ever relying on social media to stay updated on current events, there is an ethical responsibility for hosting companies to defend against false information. Disinformation, which is a type of misinformation that is i…

[UE4]删除UI:Remove from Parent

同时要将保存UI的变量清空,以释放占用的系统内存 转载于:https://www.cnblogs.com/timy/p/9842206.html

BZOJ2503: 相框

Description P大的基础电路实验课是一个无聊至极的课。每次实验,T君总是提前完成,管理员却不让T君离开,T君只能干坐在那儿无所事事。先说说这个实验课,无非就是把几根导线和某些元器件(电阻、电容、电感等)…

泰坦尼克号 数据分析_第1部分:泰坦尼克号-数据分析基础

泰坦尼克号 数据分析My goal was to get a better understanding of how to work with tabular data so I challenged myself and started with the Titanic -project. I think this was an excellent way to learn the basics of data analysis with python.我的目标是更好地了…

vba数组dim_NDArray — —一个基于Java的N-Dim数组工具包

vba数组dim介绍 (Introduction) Within many development languages, there is a popular paradigm of using N-Dimensional arrays. They allow you to write numerical code that would otherwise require many levels of nested loops in only a few simple operations. Bec…

关于position的四个标签

四个标签是static,relative,absolute,fixed。 static 该值是正常流,并且是默认值,因此你很少看到(如果存在的话)指定该值。 relative:框的位置能够相对于它在正常流中的位置有所偏移…

python算法和数据结构_Python中的数据结构和算法

python算法和数据结构To至 Leonardo da Vinci达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this article is to give you a panorama of data structures and algorithms in Python. This topic is very important for a Data Scientist in order to help …

CSS:元素塌陷问题

2019独角兽企业重金招聘Python工程师标准>>> 描述: 在文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高。但是当子元素设置浮动之后,子元素会完全脱离文档流,此时将会…

Celery介绍及常见错误

celery 情景:用户发起request,并等待response返回。在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验,比如发送邮件、手机验证码等。 使用celery后,情况…