一個小故事告訴你,如何寫好數據分析報告?
給你一份數據,你能完美的出一份數據報告嗎?本文結合一個小故事,來告訴大家如何寫好一份數據分析報告,enjoy~
本故事純屬虛構。
故事發生在花果山,主人公是一只初入職場的小猴子,名叫“嗨皮君”,他剛剛被水簾洞科技有限公司錄用為數據分析專員。他的老板就是大名鼎鼎的數據分析師“猴子”,公司里的人都尊稱他為“齊天大圣”。
花果山最近出現了一些狀況,某些猴子感染了不明病毒,導致花果山發生了嚴重的疫情?,F在水簾洞科技有限公司的員工都只能在家辦公。
這天,老板齊天大圣通過“猴信”(花果山全民都在用的IM軟件)找到嗨皮君,他說:“嗨皮君,你剛進公司不久,需要盡快熟悉公司的業務?,F在還不能上班,但也不能把這些時間浪費了。這樣,我給你一份數據,你好好研究分析一下,下周給我一份數據分析報告?!?/p>
接到任務,嗨皮君心里十分緊張:這可是進入公司的第一個任務啊,一定要好好表現!于是他認認真真地觀看了老板齊天大圣以前做過的數據分析教學視頻,還在網上查閱了很多相關資料。
以下便是嗨皮君的思考和寫作過程:
一、分析背景及目的
數據源: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月銷量增長是太平常的情況了,作者打破了慣性思維太棒了!
非常感謝分享
講解很到位 對新人幫助大
不錯