一个小故事告诉你,如何写好数据分析报告?
给你一份数据,你能完美的出一份数据报告吗?本文结合一个小故事,来告诉大家如何写好一份数据分析报告,enjoy~
本故事纯属虚构。
故事发生在花果山,主人公是一只初入职场的小猴子,名叫“嗨皮君”,他刚刚被水帘洞科技有限公司录用为数据分析专员。他的老板就是大名鼎鼎的数据分析师“猴子”,公司里的人都尊称他为“齐天大圣”。
花果山最近出现了一些状况,某些猴子感染了不明病毒,导致花果山发生了严重的疫情。现在水帘洞科技有限公司的员工都只能在家办公。
这天,老板齐天大圣通过“猴信”(花果山全民都在用的IM软件)找到嗨皮君,他说:“嗨皮君,你刚进公司不久,需要尽快熟悉公司的业务。现在还不能上班,但也不能把这些时间浪费了。这样,我给你一份数据,你好好研究分析一下,下周给我一份数据分析报告。”
接到任务,嗨皮君心里十分紧张:这可是进入公司的第一个任务啊,一定要好好表现!于是他认认真真地观看了老板齐天大圣以前做过的数据分析教学视频,还在网上查阅了很多相关资料。
以下便是嗨皮君的思考和写作过程:
一、分析背景及目的
数据源:Baby Goods Info Data-数据集-阿里云天池
这是一份母婴产品的销售数据,数据集各字段的含义如下:
我们需要从这些数据中发现某些规律或者异常,进而给运营团队提出建议。
二、分析思路
从“产品”和“用户”两个角度来分析:
1. 产品角度
- 分析销量随时间变化有什么规律
- 分析哪些是热销产品,哪些是滞销产品,它们有什么特征
2. 用户角度
- 分析婴儿年龄和销量之间有什么关系
- 分析婴儿生日和销量之间有什么关系
三、分析过程
1. 数据清洗
(1)确定分析表
把列名替换成中文,调整列宽和列与列的顺序:
(2)多删少补
① 处理重复项
由上述结果可见,并未发现重复项。
② 处理空值项
处理结果发现,产品信息表中的空值项均出现在商品属性字段下,由于商品属性是特定值,不可预估,在缺乏其他数据源的情况下没有办法进行填补,因此暂时忽略这些空值项。
婴儿信息表中未发现有空值项。
(3)一致化处理
把“购买时间”和“婴儿生日”用分列功能转换为日期格式,把“婴儿性别”转换成其真实含义。
(4)异常值处理
① 删除性别异常值
婴儿出生时的性别只有男和女两种可能,经过上面的清洗步骤,发现婴儿性别出现了异常值,删除掉。
② 删除日期异常值
经排序后观察发现,购买时间的区间范围是[2012/7/2,2015/2/5],没有极端异常值。
婴儿生日的区间范围是[1984/6/16,2015/8/15],产品销售时间在2012年~2015年,却出现了生日是1984年的婴儿,显然这个1984/6/16的项是异常项,故需删除。
③ 判断数据集是否还有可能存在异常值
对购买数量进行描述统计分析得:
变异系数=标准差/平均值*100%=2515%,说明数据集离散程度很高,可能存在部分极端值。
有时候某些异常值我们在数据清洗阶段无法发现,所以在结合图表分析的时候我们还会进行异常值的判断。
2. 结合图表分析
(1)分析销量随时间变化有什么规律
① 观察整体销售趋势
从图中发现,2014年11月出现了一个显著的销量高峰。
看到11月份销量暴涨我们通常会想到是由于双十一活动造成的,是否真的这样呢?
我们先假设是由于双十一活动造成的,那么销量暴涨背后必定是由于购买人数暴涨,下面便要收集数据证明购买人数也暴涨。
② 分析2014年11月出现销量暴增的原因
进一步,查看11月的销售情况:
从上图中可以看出,2014年11月销售暴增主要是因为11月13日这天的销量出现了暴增。
③ 分析2014年11月13日这天出现销量暴增的原因
再进一步,观察各个类别11月的销售情况:
从图中可以明显看到,主要销量来源于类别50014815,查询具体数据发现,11月13日总销量10138,类别50014815就占了10030(99.7%)。
④ 分析类别50014815在11月13日销量暴增的原因
把类别50014815历史所有的数据调出来看:
从类别50014815的历史销售数据可以发现,之前销售一直维持在一个比较平稳的水平,只是在2014年11月13日这天出现了暴增。
回到分析表,筛选出2014年11月13日类别50014815的销售明细查看。
从销售明细可以看出,该类别的商品由用户2288344467单次购买了10000件,占了99.7%(当天共10030),由此可得出以下结论:
- 不是双十一活动活动导致的。因为如果是双十一活动,必然很多用户购买导致销售量暴增,而不是只有一个用户购买大量商品;
- 需要找工程师确认数据源是否记录有误;
- 如果数据无误,则要将情况反馈给运营人员,跟踪该用户是否存在可疑行为(刷单,或者利用网站漏洞薅羊毛)。
⑤ 排除异常值,重新再观察销售趋势
经过上述分析,用户2288344467购买的这条记录属于异常值,记录为“异常数据1”,应该删除,再重新分析销量随时间变化的规律。
把删除“异常数据1”后新的数据表再用折线图展示:
从图中可以看出类别38、类别50014815、类别50022520、类别122650008的销售情况都趋于平稳,类别28的销量起伏较大,类别50008168出现一个极端高峰点。
⑥ 分析类别50008168的销售出现极端高峰点的原因
通过同样的方法可以分析出类别50008168在2014年9月20日由用户173701616购入2748件,将此数据记录为“异常数据2”,处理方法参照异常数据1。
⑦ 分析类别28销量波动大的原因
同样地把“异常数据2”删除后,得到折线图:
观察发现类别28的波动比较大,查找到类别28的销售明细,按照销量倒序排序:
从表中发现类别28并没有明显的异常数据,不过前三项较其他项差距较大,应该标记为“关注数据”,结合更多的其他数据来分析原因。
⑧ 小结
- 类别50014815、类别50008168均出现异常值,分别标记为“异常数据1”、“异常数据2”,排除是营销活动导致的。因为如果是营销活动,必然很多用户购买导致销售量暴增,而不是只有一个用户购买大量商品;
- 类别50014815、类别50008168这两项异常数据需要找工程师确认数据源是否记录有误;如果数据无误,则要将情况反馈给运营人员,跟踪该用户是否存在刷单情况(网站可能会存在漏洞,被黑客利用进行刷单薅羊毛),后续分析排除这两项数据;
- 类别28标记出三项“关注数据”,目前没有其他数据结合分析,暂时保留。
(2)分析哪些是热销产品,哪些是滞销产品,它们有什么特征
“热销”和“滞销”应该根据购买人数来判断。
① 找出热销和滞销商品
可以看出类别50008168商品最热销,而类别38商品的购买人数最少,结合之前的购买数量图可以看出类别38的销量也相对较少,因此类别38商品是滞销商品。
② 分析热销商品和滞销商品的购买人数变化
a. 先按【年份】来看
2015年只取到2月6日,数据不全,整体上可以看出所有类别的购买人数都是逐年增加。
b. 再按【季度】来看
整体上表现为第一季度下滑,第二季度上升,第三季度下滑,第四季度上升。
c. 最后按【月份】来看
从图中可以看出,滞销商品类别38的人数表现平稳,一直维持在较低的水平,由此可判断该类商品基本是靠自然流量,或者是冷门类别。
除类别38外,其他五类商品都有一些共同特征(第一季度下滑,第二季度上升,第三季度下滑,第四季度上升),而热销商品类别50008168的波动较大。
③ 分析热销商品类别50008168购买人数波动的原因
观察类别50008168折线图发现,每年的2月和7月会出现波谷,而5月和11月会出现波峰(2013年是12月出现波峰),因此把这些月份单独拿出来观察。
从图中可以发现,每年的11月和12月会出现明显的“凸起”,其他月份均是有起有伏,因此再把11月和12月份单独拿出来看:
至此,已经很明显可以看出,每年的11月11日和12月12日都会出现购买人数突增,可以判断这是商家们进行“双十一促销”和“双十二促销”活动导致的。
④ 小结
- 热销商品是类别50008168,每年“双十一”和“双十二”商家会进行促销活动,而且活动效果明显;
- 滞销商品是类别38,购买人数和销量一直平稳在较低水平。
(3)分析婴儿性别和销量之间有什么关系
① 计算男女人数比例
得出男女人数比例大概是1:1.1。
② 计算男女各自购买的商品数
得出男女购买商品数的比例大概是1:1.7。由此可见女性婴儿产品的销量要高于男性。
③ 比较各类别购买数量-男女差异
从图表中可以看出,只有类别50022520是男性略高于女性的,其他类别都是女性高于男性,主要差别在于类别50014815,女性购买量是男性的3倍。
④ 小结
- 女性婴儿产品的销量明显高于男性;
- 只有类别50022520是男性略高于女性的,其他类别都是女性高于男性,主要差别在于类别50014815,其女性购买量是男性的3倍。
(4)分析婴儿年龄和销量之间有什么关系
① 分析婴儿年龄和销量的关系
从图表中发现,产品的整体销量随着婴儿年龄的增长而下降,到了6岁之后就基本没有需求了。
② 分析各个类别的销量走势
从图中可以看出虽然整体销量都是随着婴儿年龄增长而下滑,但是各类别的侧重点不同:
- 类别50014815、类别50008168、类别28主打未满1周岁的母婴产品(0岁达到峰值);
- 类别38、类别122650008主打1岁的母婴产品(1岁达到峰值);
- 类别50022520主打未出生前的母婴产品(“未出生”达到峰值),应该主要面向孕妇和哺乳期妈妈。
③ 小结
- 整体销量随着婴儿年龄的增长而下降,到了6岁之后就基本没有需求了;
- 类别50014815、类别50008168、类别28主打未满1周岁的母婴产品;类别38、类别122650008主打1岁的母婴产品;类别50022520主打未出生前的母婴产品,应该主要面向孕妇和哺乳期妈妈。
四、结论和建议
最后把上面整个分析思路、分析过程以及分析过程中的小结整理出来,得到分析结论,并综合所有结论得出建议:
后记:
嗨皮君花了整整两天把这份分析报告写完,然后发给老板齐天大圣。老板看完之后,眯着眼笑了笑,回复道:“你的报告行文逻辑思路很清晰,结论和建议都比较到位,不错不错。你能告诉我你在写作过程中感触最深的是什么吗?”
嗨皮君想了想,回复道:
- 首先要理清楚分析思路,通过多维度分析思考,罗列分析点;
- 正式进行分析前要先对数据分析表进行清洗:确定分析表——多删少补——一致化处理——异常值处理;
- 根据罗列的分析点逐个分析,过程中需要结合对比分析、逻辑树分析、假设验证分析等分析方法进行分析;
- 很多问题不是一开始就能发现的,而是要经历“构建图表——发现异常——往下深究(不断地深入追问)——逐层分析逼近真相——找到合理解释”的过程,因此需要有“抽丝剥茧”的精神;
- 当数据关系到整体也关系到部分时,要警惕“辛普森悖论”,研究完整体得出结论后,还要研究整体中的部分,看是否也能得出相同的结论;
- 每个分析点得出小结,最后把小结综合起来再总结,往往能够把结论表达得更全面;最后的建议根据综合结论得出来会更有意义。
本故事完,感谢观看
本文由@Haby 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
对你过往的分享很感兴趣,希望有机会邀请你到公司交流学习~
讲的很详细
原来自己做的数据分析 只有广度没有深度 感谢分享!
你这个应该看了那本《谁说菜鸟不会数据分析》,然后总结来的吧
感谢分享
谢谢分享
干货满满!谢谢分享
牛啤!!!11月销量明显增长后还能分析出是不是因为双11活动导致的,这个点真是太出乎意料了。普通运营者一般就直接忽略了,毕竟11月销量增长是太平常的情况了,作者打破了惯性思维太棒了!
非常感谢分享
讲解很到位 对新人帮助大
不错