RUM 抖动器
RUM Distiller是一个用于Adobe RUM数据数据探索的JavaScript库. 它允许您先定义数据形状, 在 "系列","群","面"的形式. 您可以根据定义的方块过滤数据, 并自动获取数据 该系列的汇总.
估计“暗物质”URL(Chao1)
当采样隐藏了低流量页面时, 您可以使用古典的“ 未知物种” 估计器(Chao1) , 加上95% CI , 估计访问的 URL 总数 .
-
内置 API :
dc.estimators.plainURL.chao1返回时{ sObs, sHat, sUnseen, f1, f2, ci, darkCI }用于当前过滤/窗口.- 使用生包计数(独立观察),而不是加权总数.
-
直接函数( 对于原始行或自定义流量):
import { chao1, chao1CI, inferSamplesFromCI, estimateDarkMatterFromCI, estimateDarkMatterFromCIWithCI } from './src/estimators/chao1.js'
见算法细节 弧度/估计器/README.md。 。 。 .
参考资料
- Chao, A. (1984) (英语). 人口类别数量非参数估计。 斯堪的纳维亚统计学报, 11, 265–270. https://doi.org/10.2307/4615964 (英语)
- Chao, A. (1987) (英语). 估计可捕性不平等的捕捉-捕捉数据的人口规模。 生物仪 43(4),783–791. https://doi.org/10..2307/2531532 (英语)
概念
套装
RUM Distiller的基本构件是: Bundle。捆绑是属于同一页面视图的事件集。 每个捆绑有一个 weight,这是以捆绑为代表的页面浏览数.
由于采样和分样,捆绑的重量一般为100或100多.
后三个概念是描述数据形状的构件:系列,组和Facets.
系列
一个系列是从捆绑中提取出一个度量衡的方法. 一个系列的价值是: 总是数,并允许简单的计算, 像计数,平均, umming,百分数等.
在其核心,一个系列是一个需要捆绑并返回数字的函数. 单位 一个图,你会绘制一个序列的值 在y轴上.
还有很多 内置系列 包含在 RUM Distiller 中,但也可以执行自己的自定义系列.
一旦定义了序列,就可以添加到 DataChunks 对象使用 addSeries 方法.
组
一个组是将数据分组到一组桶的一种方式. 最常见的类型 分组是按时间分组的,但如果需要,也可以按其他维度分组.
在图表中,您会在y轴上绘制一组的值。 实际上, 许多图表,如派图,或大多数条图不需要组合.
在程序上, 组合是一个函数 这需要捆绑并返回一个字符串.
面额
一个面是过滤数据的方法. 对于每个面值类型,可以有多个面值,每个捆绑可以满足给定的多个面值 外观类型 。 大多数应用程序定义最多可达一打左右的面部类型.
在过滤时,不同的方面会使用逻辑和,意思是 必须满足所有方面的要求,才能将捆绑物纳入结果集.
当给一个面型提供了多个过滤值时, 面型是
组合器决定组合匹配是否足够 some 或者说 every 数值.
面额使用 addFacet 方法和
一个面值函数需要捆绑,然后返回一个字符串或一系列字符串.
通常,所有平面值都被视为离散值,但有可能 通过创建直方图将离散值转换成范围.
直方图
直方图是将数据分组为桶的一面,基于基面的值.
您可以使用 addHistogramFacet 方法.
直方图基于一个返回数值的现有面. 这个 然后将数据分组成桶,每个桶都有下限和上限。 每个桶的数值大致相同,所以 直方图分布均匀,在直方图上调取过滤器 将取好数据的一部分.
过滤
一旦定义了数据的形状,我们可以使用 filter, (中文(简体) ), totals,以及 facets 视图。 最基本的方法是
filter。 。 。 .
过滤定义是完全声明的, 这样您不需要写入 任何必须的代码, 因为它已经处理 通过创建你之前的方面.
过滤器声明是一个从平面名称映射到单个值或数组值的对象. 过滤器将返回所有捆绑 满足每个面值过滤器,使用组合器处理多值.
您可以将过滤器应用到一个 DataChunks 对象使用 filter 设置.
// set up the dataChunks
const data = new DataChunks();
// add some data
data.addData(bundles);
// filter the data
data.filter = {
"device.type": ["desktop", "mobile"],
"page.path": ["/home", "/about"],
};
// all subsequent calls to data will use this filter
业绩
Facet功能是纯的:它们的结果只取决于捆绑. 卢姆 抖动器对每个都进行评估
facet 函数精确于每捆( 之后) load编号 :addData编号 :addFacet)并存储结果
在已编码的词典中,列形布局(类型数组)。 更改过滤器不重运行任何
平面函数;过滤和计数平面值是这些列上的整数内核.
如果装入后将捆绑装好,请拨 resetData() 因此,面值为
复为相.
共计
还记得我们以前定义的衡量标准吗? 这个 totals 视图将计算
当前过滤器的参数。 这些总数的类型是 Aggregate 对象.
// calculate the totals
const totalPageViews = data.totals.pageViews.sum;
如果我们建立了 pageViews 序列,这是页面浏览总数。 除了拿到钱,我们还可以得到 mean (平均数), min, (中文(简体) ), max, (中文(简体) ), median, (中文(简体) ), stddev (标准偏差),和 percentiles (任意百分数,如第50、90、99分数).