流量描述统计及频率分布(Python版)
来源:互联网 发布:随机数 算法 编辑:程序博客网 时间:2024/04/29 21:05
本篇文章通过常用的统计分析方法和图表发现流量数据中的规律和特征。主要使用的分析工具是Python。(说明:本篇文章还有另一个使用R的版本)下面将分别解释每一种统计方法的结果以及这些统计方法在Python中的实现方式。
开始前的准备工作
我们准备了一组原始的CSV数据,其中包含直接访问,引荐访问和SEM广告三个渠道近一个月的访问量数据。在开始分析之前先将原始数据导入到Python中。并将数据保存在名为traffic的数据表中,以备后面的操作。
import pandas
as
pd
import numpy
as
np
import os
import matplotlib
as
mpl
import matplotlib.pyplot
as
plt
将数据导入Python中的方法
traffic=pd.DataFrame(pd.read_csv(
'traffic.csv'
))
流量属性的描述统计
首先是描述统计,对于网站中不同渠道的访问量数据,通过描述统计可以快速的发现并对比不同渠道访问量的集中和离散趋势。在Python中给出的描述统计结果包括最小值,第一四分位数,中位数,均值,第三四分位数和最大值五个指标。(每个工具提供的描述统计结果都不一样,Excel的描述统计还会显示众数,标准差,方差等指标。Python中也有用对应的命令。)
Python的描述统计方法
traffic.describe()
集中趋势分析
集中趋势分析主要靠平均数、中数、众数等统计指标来表示数据的集中趋势。Python的描述统计中给出的算数平均数和中位数两个指标。如果访问量数据符合正态分布,那么算数平均数将能代表这一组数据的集中趋势,并且会与中位数接近。通过Python中显示的描述统计结果可以发现,直接流量和SEM流量算数平均数与中位数较为接近。除了集中趋势外,还需要关注数据的离散趋势。
离散趋势分析
用来衡量离散趋势的指标很多,包括标准差,方差,极差等等。在Python的描述统计中可以通过最大值和最小值来计算极差指标。在上面三组流量渠道中,引荐流量的极差较大。
极差:
R=Xmax-Xmin
流量数据的离散情况分析
对于数据的离散情况,除了描述分析以外还有一个更直观的方法就是箱线图。箱线图利用6个指标描述数据的离散情况。这6个指标分别是最小值,第一四分位数、中位数、第三四分位数与最大值和异常值。
- 中位数:中位数是一组从小到大排序数据中位置在最中间的一个数据(两个数据取均值)。
- 第1(下)四分位数:第1四分位数与中位数算法类似,是对一组数据中50%数据再取中位数。一组数据中如果有25%的数据小于这个数,那么这个数是第1四分位数。
- 第3(上)四分位数:一组数据中如果有75%的数据小于这个数据,那么这个数是第3四分位数。
- 异常值:异常值是指这个数据与四分位数的差达到5倍的值。箱线图中异常值的表示方法有两种,1.5倍-3倍差之间用空心的点表示。超过3倍的异常值,用实心点表示。
- 上限和下限数:除了异常值之外,最靠近上边缘和下边缘的两个数值为上限数和下限数。
Python的箱线图绘制方法
在Python中绘制箱线图的方法很简单,使用boxplot命令可以自动生成流量渠道的箱线图。并且可以对图表进行修改,例如添加图表标题,颜色和轴标题等。
plt.boxplot(traffic[
'direct'
])
plt.xlabel(
'Direct'
)
plt.ylabel(
'Visits'
)
plt.title(
'Direct traffic'
)
plt.legend()
plt.show()
通过三个渠道的箱线图可以发现,直接流量中包含有三个异常值,异常值大于第3四分位数1.5倍-3倍差之间。此外,引荐流量的整体离散程度要比直接流量和SEM流量大,因此引荐流量的算数平均数对整体集中趋势的代表性要低于直接流量和SEM流量的算数平均数。
流量数据的分布情况分析
箱线图可以很好的反映数据的离散情况,但不能提供数据分布的精度。使用直方图可以显示出各渠道流量数据的具体分布情况,发现不同流量渠道的特征。
Python的直方图绘制方法
Python中绘制直方图的方法是使用hist命令,并且可以对直方图进行修改,如添加图表标题,图例,坐标轴标题等等。以下是三个流量渠道的直方图命令和图表。
plt.hist(traffic[
'direct'
])
plt.show()
直接流量的直方图中数据分布为两组,第一组频率集中在20000到25000之间,因此22000的算数平均数对这部分数据有较高的代表性。而另一组30000以上的数据是之前在箱线图中看到的极端数据,这部分数据只出现过一次,出现频率较低,不具代表性。
引荐流量从分布上来看较为分散,5000-10000和15000-20000两个区间的频率都较高。因此单一的算数平均数对于引荐流量的数据缺乏代表性。
SEM流量从分布上来看9000到12000区间频率较高,因此算数平均数10863对整体流量也具有较高的代表性。
—【所有文章及图片版权归 蓝鲸(王彦平)所有。欢迎转载,但请注明转自“蓝鲸网站分析博客”。】—
Read more: http://bluewhale.cc/2016-02-18/traffic-statistics-and-frequency-distribution-python.html#ixzz45sIrnN4z
- 流量描述统计及频率分布(Python版)
- 流量描述统计及频率分布(R版)
- python统计并绘制频率分布直方图
- 统计拼音字母使用频率 python
- 描述性统计部分(二)----常用概率分布及用处简述
- 用Excel生成频率分布表及频率分布直方图[转]
- Python 统计文章单词出现频率
- 字母出现频率统计用python实现
- #行为科学统计#形状+集中趋势+变异性=简单描述分布
- 流量统计
- 流量统计
- 流量统计
- 流量统计
- 流量统计
- 流量统计
- 流量统计
- 流量统计
- 流量统计
- IO简单总结
- 关于J2EE/EJB/Spring
- secureCRT,将linux系统中的文件下载到本地的方法
- bzoj 4515: [Sdoi2016]游戏 树链剖分
- iOS获取UUID,并使用keychain存储,将账号密码存到keychain中
- 流量描述统计及频率分布(Python版)
- Ubuntu14.04下KLEE的安装教程和使用KLEE分析GNC代码的教程
- spring知识点积累
- 公告循环向上滚动
- HashMap实现原理分析
- Java 父类,子类各自均有构造器和静态代码块 执行的顺序
- iReport_web开发配置向导
- 常用css代码
- 流量描述统计及频率分布(R版)