月度归档:2012 年四月

网站数据分析的一些问题1

questions-1  从事数据仓库和数据分析相关的工作也有段时间了,其实很多问题一直萦绕在脑中,有些甚至已经困扰相当长的一段时间,自己也在不断学习和工作的过程中寻找各种解决方案或者不断优化和替换之前的方案。这些问题从宏观层面到细节层面,很多问题其实没有绝对完美的解决方案,我们只能一步一步地摸索,不断寻找更优的方案以其让问题能够更好高效地得到解决,但每个人掌握的知识有限,所以无论怎么样每个人对问题的看法都会存在局限性;同时因为每个人的知识背景和经历的差异性,对各种问题又会触发各种不同的见解,所以通过集思广益往往能够得到让人眼前一亮的结论。

  先说说博客,无论怎么样我的博客只是想做些记录和总结,只是表述一些个人的观点,我想每个人在学习工作中总会有所积累,有自己在专业领域的一些收获,每个人公平地享有相同的时间,每个人学到的掌握的都是有限的,没有孰强孰弱之分,差别只在于愿不愿意将其分享出来;博客中整理的内容,可能有些人认为不适合公开,毕竟有些东西还有些实用价值,但必须看到的是目前互联网发展速度太快了,我之前发的文章等半年之后回去看就会发现当时自己的想法并不成熟,如果在现阶段可能不会完全按照上面的思路去实现了,知识的更新和积累让我们不断选择更优的方法,不断改进和升级自身的知识体系,更何况很多东西在一个业务体系下适用,到另外的体系下就不适用了,聪明的人不会完全照搬照抄原方法,而是寻找最合适的方法,或者使用更灵活变通的方式去使用方法,所以也不必担心技能被“偷学”,因为只会模仿的人不知道怎么用好这些方法,而足够聪明的人到哪里都能学到适合自己的方法,在这个信息膨胀的环境下无法阻止他们的“偷学”。

  其实博客最大的收获还是通过博客认识了很多朋友,尤其是网站分析领域的,相当一部分也有自己的博客,大家互相交流学到了很多东西,有些东西是互补并相互促进的,这些朋友都是乐意分享自己想法的人,每个人都有各自领域的专业和强项,这样反而使我听到和学到了很多耳目一新的东西,受益匪浅。所以如果你有时间写写博客,那么得到的收获绝对要比你觉得可能会失去的多得多。

  既然我在博客里面已经写了很多,所以这里想换一个角色,我想通过几篇文章把之前遇到的诸多问题罗列出来,希望大家能够不吝提出自己的看法和解决方案。其实我更希望在博客的评论中看到更多不同的看法或者通过文章的思路扩展衍生出在其他方向上有价值的应用。另外,知乎真的是一个非常棒的知识分享和学习的平台,潜藏了很多的大牛,我会把整理的每个问题都贴到知乎上面,这样可以收集到更多牛人的看法,希望大家在知乎上有认识相关领域的大牛的可以积极地进行邀请。

  这篇是第一篇,想重点罗列一些跟网站数据分析行业和数据分析师相关的问题。

Q1、 你因何会选择网站分析或互联网数据分析这个行业,你认为这个行业的价值何在,发展前景如何?(知乎

  我的答案:互联网是一个阳光行业,而数据分析本身又是一个非常有意思的工作,很多时候,它就像是一个侦探从细枝末节的线索中寻找那个唯一的真相,如果你喜欢这种探秘的感觉,那么你同样会喜欢上网站数据分析这个行业。

  其实我之前在《网站分析的应用和价值》这篇文章中介绍过网站数据分析的价值(这里不引用链接了,大家可以搜一下),简单地说就是“系统地帮助网站实现更加高效的运营”。

  互联网数据量的快速膨胀,急需对数据进行系统化的处理和分析,以便快速地发现信息,转化价值,所以就目前来看,无论是国外的发展趋势,还是国内对这个行业的需求都是快速增长的,发展前景是比较乐观的。

Q2、 作为网站的数据分析师,你完成的最有成就感的事情是什么,感到最纠结的事情又是什么?(知乎

  我的答案:最有成就感的事情就是用数据实现价值,无论是通过数据排查问题进而解决问题,还是通过数据分析应用优化网站产品,其实都是创造价值的过程。

  最纠结的事情其实不是整日需要维护和验证数据的一致性、准确性,数据时常会存在诸多细节上的问题,因为这些基本是必然存在的,无论在哪个公司,网站从事何种业务,技术或者数据的环境如何,数据的问题还是无所不在,而保证数据质量本身就是数据分析师最基础的工作,也是开展分析的前提和基础。

  我最纠结的还是在于数据的需求和应用,如果与数据的需求方在数据的理解上达不成一致,那么很多数据需求就会存在反复的调整变动,期间就会做很多重复的工作或者无用功,甚至有些时候数据分析师大费周章地提取的一份数据在需求方那里只是用几秒钟扫视一遍,没有产生任何的价值,这也是令数据分析师最伤感的事情。所以数据分析始终要从获取最终insight的角度出发,如果数据需求中无法说明获取数据是为了试图得出何种insight,那么这个需求基本就没有实现的必要了。

Q3、 作为网站的数据分析师,你日常工作中最常做的是什么,需要与哪些同事交流,一般会用到哪些工具?(知乎

  我的答案:数据分析师的日常工作很简单,就是数据处理和观察报表,而且这两块工作会占用每天的大部分时间。如果每天能够准时提供准确的报表,及时地反馈数据异常,那么你已经是一个合格的数据分析师了。

  数据分析师要接触的部门会比较多,可以是任何有数据需求的部门,运营、产品、市场、销售、客服……甚至是各层级的BOSS。

  同样,数据分析师日常使用的工具其实也非常简单,估计在90%的时间都在使用数据库的SQL、Excel或者PPT,当然视每个公司的情况会有差异。所以如果你听到某位数据分析师说他天天在研究什么什么样的高级分析方法或者高深的数据算法,天天在使用R、SPSS、SAS,那么不排除有装X的嫌疑。

Q4、 在你刚刚步入网站数据分析的工作,或者你曾经新到一个公司或者网站从事数据分析师的工作,你是如何着手开始你的新工作的,你觉得你需要了解哪些东西,会从哪些方面优先开始学习?(知乎

  我的答案:“业务 => 网站或产品 => 数据处理流程 => 指标和报表”,我的基本流程就是这样的,当然这个也不绝对是前后的顺序,可以是同时结合着看的。

  数据分析的重点不在于数据而在于分析,分析针对的是业务,所以业务是首要了解的东西,就像一个人做事情,首先要明确的是要做的是什么事情;然后是网站或产品,它是实现业务的媒介,就像是做事情时使用的工作或方法;数据的处理流程包括了数据的获取、处理和存储模型,它是记录信息,可以看做是日记,记录了一个人做事情的整个流程;指标和报表就是为了将一个人做事情的整个流程复述出来,把握重点同时又不失关键细节,所以必须要了解指标的统计规则和报表的展现方式,以便更好地突显重点,了解省略的细节,让复述贴近事实。

  很明显,当你了解了这个人在做什么事情之后再去阅读这个人在做事情时记录的信息或听取复述要远比你直接通过复述内容或者阅读记录信息来猜测这个人在做什么事情来得高效得多。

  不知道现在知乎注册还需要不需要邀请码,如果需要的话可以问我要,我的Gtalk(joeghwu@gmail.com)。

多维交叉分析

cross-analysis  我们在进行数据分析的时候,大部分时间都在使用趋势分析、比较分析、细分分析这三类方法,但其实还有一个方法我们也会经常使用——交叉分析,尤其是在排查数据异常的问题时,交叉分析就能展现其强大的威力。另外要跟大家说声抱歉的是博客的更新频率可能没有那么频繁了,但是尽量每个月至少能发布一篇,希望文章的质量有所保证,还是欢迎大家留言讨论,能够发起一些有趣的话题,一起拓展在网站数据分析方面的思路。

什么是交叉分析? 

  交叉分析是指对数据在不同维度进行交叉展现,进行多角度结合分析的方法,弥补了独立维度进行分析没法发现的一些问题。

  交叉分析以多维模型和数据立方为基础,也可以认为是一种特殊的细分方式,但跟细分的概念有点差异,如果有兴趣可以先阅读下之前的文章——数据立方体与OLAP。细分的方法更多的是基于同一维度的纵深展开,也就是OLAP中的钻取(Drill-down),比如从月汇总的数据细分来看每天的数据,就是在时间维度上的细分,或者从省份的数据细分查看省份中各城市的数据,是基于地域维的下钻。交叉分析不再局限于一个维度,就像数据立方体与OLAP文章中的立方体,是基于不同维度的交叉,时间维、地域维和产品维交叉在一起分析每个小立方的数据表现,可以通过OLAP的切片(Slice)和切块(Dice)操作查看例如上海市在3月份的电子产品的销售情况,这会帮助我们发现很多在单个维度中无法发现的问题。所以,交叉分析是基于不同维度横向地组合交叉,而不是细分在同一维度的纵向展开。

交叉分析的展现形式

  交叉分析涉及多维度的组合,虽然图表和表格都可以进行展现,但因为图表所能表达的数据有限,且比较不容易把多个维度的交叉关系展现出来,在交叉分析中不太常用,通常以表格为主。我们平常在看的表格通常被叫做二维表,一般第一列放置一个维度,如日期,表头罗列各类指标(其实所有指标也可以被认为是一种特殊的维度——指标维),这样行列的两个维就组成了最常见的二维表。二维表可以进行扩展,进而展现更加丰富的维度:

pivot-table-layout

  如上图就是典型的基于表格的多维度交叉分析的布局,在行列中分层次放置多个维度,如果我们只显示一个指标,那么这里的指标维就没有显示的必要了。其实Excel的数据透视表(Pivot Table)就是交叉分析的利器,我在数据的报表和报告这篇文章中提到过数据透视表,这里还是基于那篇文章截图的原始数据,如果我们将各维度按照上面的布局形式进行展现的话,会是怎么样的效果: 

excel-pivot-table

  看起来还不错,显示的信息非常丰富,左边包含了以天为单位时间维和产品维,可以使用展开按钮进行汇总和展开,就像是细分的操作;上面的表头部分分两层罗列了地域维和指标维,Excel的透视表提供了丰富的设置,默认展现基于各个维度的汇总数据,让我们可以从“总-分”的角度观察数据,这对数据分析非常有用。假如我们使用上面的透视表进行交叉分析发现数据是否存在异常?

  使用从总体到细节的分析方法,首先可以从查看每天销售额和转化率的汇总数据开始,折叠产品维之后观察最右侧的指标汇总列就可以看到每日汇总数据;如果某一天的销售额或转化率出现了大幅的下滑,我们就可以结合各种维度寻找问题的原因,就是基于各种维度的细节数据,展开产品维观察当天的哪类产品销售出现了问题,然后结合地域维的交叉数据,可以定位哪类商品在哪个省份的销售出现了问题,这样就有效地将问题定位到了细节的层面,能够更好地发现问题,进而解决问题。所以交叉分析其实正是体现了分析“分而析之”的本意。

  上面的方法一般是比较常用的基于问题的分析方法,但我们很少可以一次就定位到问题,往往我们会根据推测多次查询数据库或查看Dashboard上的各类报表来定位问题。而结合透视表的交叉分析,我们使用一张报表就快速地定位了问题所在,从总体到细节,逻辑非常清晰,问题的定位也非常准确和到位,所以合理地利用交叉分析可以帮助我们更加高效地排查问题。

交叉分析的基础

  这里不得不再说一下交叉分析基于的底层基础数据模型,因为如果没有设计好底层的数据模型,上层的交叉分析是很难实现的,或者多维的交叉受到限制而使分析存在局限性。

  从技术层面来看,交叉分析基于多维模型,数据的维度越丰富,所能实现的交叉也越丰富和灵活,通过各种交叉分析能够更加有效地发现问题;但相应的,如果要尽可能地丰富各维度的交叉分析,对基层模型的要求也就越高。所以如何设计好数据的底层模型非常关键,还是引用数据立方体与OLAP文中的那个数据立方看个简单的例子:

data-cube

  如果一张网站分析的报表只包含以月度为单位的日期维和相应的指标,那么数据的存储就是每个月一条记录,但显然这种高度聚合的数据不利于分析,我们需要构建如上图的数据立方体来获取更加细节的数据。用数据立方来拓展数据细节有两种方向,一类是纵深拓展,也就是基于一个维度的细分,比如将一个月细分到每一天,那么一条记录将会被拓展成30条;还有一种是横向的拓展,就是多个维度的交叉,就像上面立方中添加了产品维和地域维。这样存储的数据就从原本单一的时间维度扩展成了时间、产品和地域三个维度,也就是三维立方体所能展现的形式,当然维度可以继续扩展,四个五个直到N个,理论上都是可行的,这里只要以三个维度进行举例就可以。对于数据存储而言,横向的拓展与纵深拓展的影响是一样的,记录数都是以倍乘的方式增长,假设这里产品维是产品大类,有20个产品大类,再加上32个省份或直辖市,那么经过纵深和横向拓展之后,原先每月的1条记录就变成了:

1 × 30 × 20 × 32  =  19200

  而我们在构建多维模型的时候很多维度中包含的数据量绝对不像上面例举的那么小,想象一下网站的商品或者页面的数量可能是成百上千甚至成千上万的,那么一旦以倍乘的形式扩展之后,数据量就会一下子剧增。虽然丰富的多维立方能够给分析带来便利,但也同时给数据的存储和查询带来的压力。

  所以,更加丰富和灵活的分析需求的实现基于更加复杂的多维模型或者数据立方,同时会带来更大的系统开销。Google Analytics很好地权衡了灵活的数据分析与复杂数据模型之间的关系,这也是Google Analytics强大功能的基本保障,GA的高级细分(Advanced Segments)和自定义Dashboard是其他同类免费网站分析工具所无法比拟的,这也正是为什么我们将GA划分到网站数据分析工具,而其他的大部分只能算作网站数据统计工具的原因。而GA正是基于其构建的强大的底层数据模型和高效的数据计算和响应能力,使很多分析功能可以得到扩展,其中很多就涉及交叉分析,这里截图了其中的两个功能,Secondary DimensionPivot

GA-secondary-dimension

  Google Analytics新版本增加了很多令人心动的功能,Secondary dimension的功能从老版本得到了延续,上图在Content模块的Page报表中选择了流量来源作为第二维度,这样我们就可以查看每个页面的流量是从何而来,每个流量来源在该页面的数据表现,同时可能还可以发现一些有趣的现象,比如某些页面的流量基本都是一个来源带来的,比如我的博客的某些文章基本都是通过搜索引擎进来的,而另外一些文章基本通过直接流量带来。

GA-pivot

  在GA的各类报表中可以在右上角选择展现的形式,最后的一种就是Pivot,Pivot的形式对表格的表头进行了扩展,可以分层次放置另外的维度,如上图还是使用了页面与流量来源的交叉,将Source维度放到了指标的上方。同时GA支持在两个维度的基础上最多选择两个度量Metric,我这里选择了Pageviews和Bounce Rate,来衡量每个页面中各类流量来源所带来的“量”和“质”,同样对于分析非常有价值。

  多维的交叉分析我们在日常中潜移默化地经常会用到,交叉分析对于问题的排查和定位额外有效,所以我们需要想办法用更好的形式去展现数据,以便于更有利于进行交叉分析,其实这里介绍的透视表的方式是最常用的,也是比较好用的,但这类方式太少,不知道大家有没有其他更加有效的交叉分析展现方式。