计算网页停留时间的平均时长

需求:现在有好多用户访问某个网页的停留时间,要计算平均时长。

求均值是不太合理的,因为有的时间特别的长,这样的时间应该是噪音数据,这样计算的均值感觉就偏大。

我感觉应该先找到事件的分布,然后根据分布计算它的期望。

首先把数据分成几个区间,然后计算每个区间内事件发生的频次:
(参考这个:http://jingyan.baidu.com/article/f3ad7d0fffa41509c2345b6e.html
《计算网页停留时间的平均时长》

我首先画出了数据分布的直方图:
《计算网页停留时间的平均时长》
分布特别不均匀,从累计概率可以看出第一组数据就站了87%。

下面我们只要前87%的数据:
《计算网页停留时间的平均时长》

这个跟指数分布好像:
《计算网页停留时间的平均时长》

把这两个叠加到一张图上:
《计算网页停留时间的平均时长》

假设服从指数分布,指数分布密度函数为 p(t)=λeλt ,期望为 1λ 。然后根据极大似然估计得到: λ=nNi=1ti ,期望就是: Ni=1tin 。呵呵,这就是所有数据的均值啊,兜了一圈又回到了开头啊!看来期望并不能代表停留的平均时长。像这种偏态分布,比起期望(均值),中位数也许能更好的代表“平均值”。

把数据从小到大排列,中间的数就是中位数。
《计算网页停留时间的平均时长》

看下面的例子:
https://www.zhihu.com/question/27496436
《计算网页停留时间的平均时长》

只能简单粗暴的取分位数了。
下图是所有的数据的统计结果:
《计算网页停留时间的平均时长》

下图是访问时间<300的数据的统计结果:
《计算网页停留时间的平均时长》

不论是取中位数,还是求中间部分的均值,结果都是差不多的,而且感觉也较合理。而且用全部数据算,和去掉感觉不合理的特别大的数据算的结果也是差不多的。
所以我感觉可以用中值代表页面停留时间的平均时长。

python的代码和分析数据的excel表在这:
https://github.com/zhouna/ml_python/tree/master/webPage

参考:
http://blog.jobbole.com/93336/
https://blog.oldj.net/2012/11/01/time-on-page/
http://www.ruanyifeng.com/blog/2015/06/poisson-distribution.html

    原文作者:fxnfk
    原文地址: https://blog.csdn.net/familyshizhouna/article/details/73187882
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞