我正在编写一个记录一些“基本”统计数据的应用程序——页面浏览量和唯一身份访问者。我不喜欢存储每个 View 的想法,因此考虑过以小时/天的分辨率存储总计。例如,像这样:
Tuesday 500 views 200 unique visitors
Wednesday 400 views 210 unique visitors
Thursday 800 views 420 unique visitors
现在,我希望能够在选定的时间段(即一周)内查询此数据集。计算 View 非常简单:只需加法即可。但是,添加唯一身份访问者不会给出正确的答案,因为访问者可能已经访问了好几天。
所以我的问题是如何在不存储每个单独点击的情况下确定或估计任何时间段内的唯一身份访问者。这可能吗? Google Analytics 报告这些值——它们肯定不会存储每个点击并查询每个时间段的数据集!?
我似乎无法在网上找到任何关于此的有用信息。我最初的直觉是我需要存储两组具有不同分辨率(即一天和半天)的值,并以某种方式为所有可能的时间范围内插这些值。我一直在玩数学,但什么也做不了。您认为我可能是在做某事,还是在错误的轨道上?
谢谢, 布伦登。
最佳答案
如果您对近似值没问题,我认为 tom10 是对的,但他的随机子样本概念不正确或需要澄清。如果我有一位访客在第 1 天和第 2 天来访,但仅在第 2 天进行抽样,这将在估计中引入偏差。我要做的是为用户的随机子样本存储完整信息(比方说,所有用户的 hash(id)%100 == 1)。然后你对采样数据进行完整计算并乘以 100。是的,tom10 就是这么说的,但有两个区别:他说“例如”基于 ID 的样本,我说这是你应该采样的唯一方法,因为您对唯一身份访问者感兴趣。如果您对独特的 IP 或独特的邮政编码或任何您会相应抽样的东西感兴趣。如果您的样本足够大,可以使用二项式的正态近似来评估估计的质量。除此之外,您可以尝试使用用户忠诚度模型,例如观察到超过 2 天,10% 的访问者两天都访问,超过三天,11% 的访问者访问两次,5% 的访问者访问一次,依此类推,直到最大天数。不幸的是,这些数字可能取决于一周中的时间、季节,甚至取决于对这些时间的建模,随着用户群的成熟,忠诚度会随着时间的推移而变化,组成也会发生变化,服务也会发生变化,因此任何模型都需要重新估算。我的猜测是,在 99% 的实际情况下,采样技术更适合您。
关于database - 网络统计 : Calculating/estimating unique visitors for arbitary time intervals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3646722/