OneData之原子指标

原子指标与派生指标

       原子指标是对指标统计口径算法的一个抽象,等于业务过程(原子的业务动作)+ 统计方式。例如,支付(事件)金额(度量),曝光(事件)次数(度量)。

       不同的派生指标可能具有相同的原子指标,这样派生指标就定义了一种等价关系,而属于相同的原子指标就构成了一个对指标体系的划分。在每一个划分中,存在一个可以派生出其他指标的最小派生指标,即最细粒度。

       让我们规范化定义,记录 r\in X(业务过程事实表),f:X\rightarrow R 定义了一个统计方式(ex: sum, count, max, count distinct...)。

       对于X的一个分拆A,如果f(X) = \sum\nolimits_{a\in A,\cup a=X}f(a),则f具有派生的可加性,如sum, max, count...但是我们都知道count distinct(简写ctd)是一个例外,一般不具有可加性。这是因为count distinct 蕴含了一个分拆C(count distinct c = count(select c from group by c)),而不是上述分拆A的子分拆(\forall c\in C,不存在a\in A,c\subseteq a)。

       但是如果我们定义一个A^\rho  ,而CA^\rho  的子分拆,这显然是可以找到的。那么我们就可以让ctd函数具有可加性,而A^\rho可作为C的维度属性。例如,用户每日购买的首个商品,用户归一化的来源渠道。

       下面我们提出这样一个问题,是否可以找到一个A^\mu  ,使得我们事实表中count(A^\mu) =count(A),同时满足上述ctd度量的可加性。答案是肯定的,前提是count(A)\geq count(C)

       我们进一步提出这样一个想法,是否可以对每一个a\in Actd(X\vert {a\in A} )=ctd(X\vert {a\in A^\rho}),这样我们定义出A^\rho便具有实际的意义。也就是我们将每一条记录赋予一个新的columnA^\rho,即f(t,c,h(t,c))=(t,c,g(c)),其中t可以视为数据表的主键,h,g surjective,g(c)即为新的一列,可视为c的维度属性。则对于X而言,X=F\cup NFF: fixed points, h(t,c)=g(c)NF non-fixed points。

       然而这样的想法是保证不了严格的成立,设想数据中每一个用户c都购买了某一种商品a,其中有一些用户购买了商品\tilde{a} ,那么ctd(X\vert {a\in A} )=ctd(X)=ctd(X\vert {a\in A^\rho}),因为gc的函数,所以数据中每一条记录的A^\rho都等于a。那么对于ctd(X\vert {\tilde{a} \in A} )而言,ctd(X\vert {\tilde{a} \in A^\rho})一定等于0。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容