计算网页停留时间的平均时长
需求:现在有好多用户访问某个网页的停留时间,要计算平均时长。
求均值是不太合理的,因为有的时间特别的长,这样的时间应该是噪音数据,这样计算的均值感觉就偏大。
我感觉应该先找到事件的分布,然后根据分布计算它的期望。
首先把数据分成几个区间,然后计算每个区间内事件发生的频次:
(参考这个:http://jingyan.baidu.com/article/f3ad7d0fffa41509c2345b6e.html)
我首先画出了数据分布的直方图:
分布特别不均匀,从累计概率可以看出第一组数据就站了87%。
下面我们只要前87%的数据:
这个跟指数分布好像:
把这两个叠加到一张图上:
假设服从指数分布,指数分布密度函数为
把数据从小到大排列,中间的数就是中位数。
看下面的例子:
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