99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁案例分享電商女裝銷量描述與分析案例
電商女裝銷量描述與分析案例
2021-03-08
收藏
一、案例綜述
案例編號:
102002

案例名稱:
零售行業(yè)——電商女裝銷量描述與分析

作者姓名(或單位、或來源):
朱江

案例所屬行業(yè):
F523 紡織、服裝及日用品專門零售

案例所用軟件:
Rstudio

案例包含知識點:

案例描述:
目前網(wǎng)絡(luò)購物異常的火爆,發(fā)展迅猛,基于數(shù)據(jù)分析的精準營銷需求也隨之增加。目前網(wǎng)絡(luò)購物的幾個特點是:私人消費增長中網(wǎng)絡(luò)消費占的比重越來越大;移動端購物占網(wǎng)絡(luò)購物的比例越來越大。

目前服裝行業(yè)的最大類目是女裝行業(yè),不難理解相比于男裝女裝更新速度快、受眾廣以及品類多樣,而女裝行業(yè)中銷售額占比最高的5個子類依次是:連衣裙、T恤、襯衫、休閑褲及毛針織衫。
于是我們針對連衣裙零售業(yè),從某線上購物網(wǎng)站獲得月銷售量不低于99筆的連衣裙商品信息,共有5880個商品,每個商品包含自身的一些屬性、交易信息、商品所屬店鋪的信息以及評價信息。

通過這些商品信息,我們可以進一步分析暢銷連衣裙有什么共性,即有什么樣性質(zhì)的服裝會更容易暢銷,銷量跟什么因素相關(guān)。借此我們可以把握整個市場的宏觀特征,發(fā)掘高銷量服裝共性,找到影響銷量的顯著因素,并且量化這些顯著因素。從而指導(dǎo)賣家更合理有效的捕捉流行趨勢、定位市場、合理管理庫存以及更改營銷策略。

數(shù)據(jù)文件說明:原始文件是從某線上購物網(wǎng)站獲得的經(jīng)過處理的99個csv文件,這些文件包含所有六千個左右商品的信息,包含16個特征,可以分為三大類:
1.無用特征:數(shù)據(jù)獲取日期、獲取時間、商品id、店鋪名、平均價格、評論數(shù)、店鋪半年內(nèi)動態(tài)評分、累計評價匯總。
2.商品相關(guān)信息:商品名稱、商品價格、產(chǎn)品描述、月銷量。
3.店鋪信息、店鋪評分。

無用特征中有些是基本不含有有價值信息的特征如時間、id、店鋪名、平均價格,有些是重復(fù)且難以抽取有用信息的特征例如店鋪動態(tài)評分,有些是預(yù)測后才能產(chǎn)品推行后才能獲得的數(shù)據(jù)例如評論數(shù)、累計評價匯總。由于我們的目的是在產(chǎn)品推行前給出合理的建議提高產(chǎn)品銷量,這些產(chǎn)品推行后的信息要么無法改善要么很難量化,故而歸為無用特征。

本案例包含如下知識點:
1.讀取多個同格式的數(shù)據(jù)文件,并且合并
2.數(shù)據(jù)篩選,主要是字符變量的處理和關(guān)鍵信息提取
3.制作詞云
4.根據(jù)關(guān)鍵詞生成新數(shù)據(jù)

案例執(zhí)行形式:
單人上機

二、案例知識點:
知識點1:
知識點名稱:R讀入多個數(shù)據(jù)文件并且合并

知識點所屬工作角色:
數(shù)據(jù)導(dǎo)入

知識點背景:
使用R同時導(dǎo)入多個相同格式的csv文件,并且橫向合并這些文件

知識點描述
與讀入單個文件不同,讀入多個文件需要先列出所有要讀取的對象,然后采用apply函數(shù)族循環(huán)讀取,再講讀取結(jié)果合并

知識點關(guān)鍵詞:
R 讀取多個文件 合并 正則表達式

知識點所用軟件:
Rstudio

操作目的:
R讀取多個csv文件并合并

知識點素材(包括數(shù)據(jù)):
tmall1.csv,tmall2.csv,tmall3.csv,……,tmall98.csv

操作步驟:
1.啟動Rstudio
2.將數(shù)據(jù)文件夾Text3拷貝至工作目錄下,設(shè)置當前工作目錄到Text3文件夾
3.清空當前全局環(huán)境中存儲的所有變量,釋放內(nèi)存空間
4.列出工作目錄下包含的所有文件的文件名,注意這里要通過正則表達式指定讀取的文件名格式
5.通過apply函數(shù)族循環(huán)讀取列出的所有文件名,并且放在一個列表中
6.將列表中所有的元素橫向合并,注意這里使用到do.call函數(shù)
7.將讀取的文件寫入”total.csv”


操作結(jié)果:
存儲在內(nèi)存中的數(shù)據(jù)框如上圖,并且得到包含所有數(shù)據(jù)的total.csv文件
將R代碼文件保存為readdata.R以備后續(xù)使用。

知識點小結(jié):
本案例巧妙的通過提取文件名并且運用apply函數(shù)族簡單快讀的讀取了多個數(shù)據(jù)文件到一個列表中,并且在避免循環(huán)的前提下使用do.call合并了所有數(shù)據(jù)

知識點2:
知識點名稱:數(shù)據(jù)篩選

知識點所屬工作角色:

知識點背景:
1.對缺失值進行處理
2.從字符串中提取有用信息
3.根據(jù)之后描述性分析、探索性分析及建模需求,對數(shù)據(jù)進行合理的轉(zhuǎn)化和處理,使得數(shù)據(jù)更具解釋性

知識點描述
1.去除帶缺失值的行
2.從字符串中提取有用信息
3.采用函數(shù)對變量進行計算生成新的變量。

知識點關(guān)鍵詞:
缺失值 數(shù)據(jù)清洗 字符串處理

知識點所用軟件:
Rstudio

操作目的:
1.處理缺失值
2.從字符串中提取有用信息
3.因子變量標簽轉(zhuǎn)換,生成新的因子變量

知識點素材(包括數(shù)據(jù)):
total.csv

操作步驟:
1.啟動Rstudio
2.讀取數(shù)據(jù)total.csv

3.提取價格變量,提取銷量變量中的數(shù)字,去除缺失值

 

4.去掉沒有描述的商品,賦值給新的變量
 
5.分割產(chǎn)品描述,以回車和冒號分割

6.剔除非年齡信息
 
7.提取年齡
 
8.保存數(shù)據(jù)到csv文件
 
操作結(jié)果:
剔除了空元素在的行,通過字符變量處理生成了年齡變量
保存到新的數(shù)據(jù)文件

知識點小結(jié):
一般從網(wǎng)站獲取的數(shù)據(jù)都不夠規(guī)整,如果獲取大段的文字信息在一個觀測中,字符處理就需要盡量全面的考慮所有情況,也要細致的核對結(jié)果。

包含大量字符的數(shù)據(jù)框?qū)懭隿sv文件時可能需要將所有數(shù)據(jù)統(tǒng)一轉(zhuǎn)換為字符格式。

知識點3:
知識點名稱:制作詞云

知識點所屬工作角色:
詞云

知識點背景:
在處理一系列文本信息或者字符信息對應(yīng)的詞頻分布時,詞云這種描述方式顯得非常直觀易懂,能夠清晰的分辨出前幾個重要詞以及次重要詞

知識點描述
詞云 描述性分析

知識點關(guān)鍵詞:
詞云 描述性分析

知識點所用軟件:
Rstudio

操作目的:
刪除非中文字符及關(guān)鍵詞
制作詞云

知識點素材(包括數(shù)據(jù)):
totalold.csv

操作步驟:
1.讀取文件,提取商品名稱所在的向量
 
2.刪除非中文字符

3.結(jié)巴分詞,查看詞頻

4.去除無意義關(guān)鍵詞

5.選擇色系,字體,繪制詞云


操作結(jié)果:
繪制詞云得到詞云圖,從中找到關(guān)鍵標簽,每次詞云顯示的效果不同,最好多做幾次取標簽,結(jié)果如下
 
提取六個關(guān)鍵標簽:新款、修身、韓版、中長款、顯瘦、印花。選擇若干進行后續(xù)分析。

知識點小結(jié):
詞云分析一般先要對字符型變量進行清洗,分詞,根據(jù)停用詞詞典去詞,找到詞頻分布,然后根據(jù)詞分布做詞云圖

知識點4:
知識點名稱:提取關(guān)鍵詞生成新數(shù)據(jù)

知識點所屬工作角色:

知識點背景:
提取關(guān)鍵詞生成新變量

知識點描述
數(shù)據(jù)清洗 生成新變量

知識點關(guān)鍵詞:
分詞 生成新變量

知識點所用軟件:
Rstudio

操作目的:
提取關(guān)鍵詞生成新變量

知識點素材(包括數(shù)據(jù)):
totalold.csv

操作步驟:
1.讀取數(shù)據(jù)

2.提取商品名稱列,刪去非中文字符,分詞,使用分號隔開

3.在商品中提取關(guān)鍵詞“韓版”,包含“韓版”的商品標記為1,其他為0,生成新變量“是否韓版”。對于其他關(guān)鍵詞:“新款”、“顯瘦”、“中長款”、“印花”、“修身”同理

4.提取銷量中的數(shù)字,根據(jù)需要的變量生成新的數(shù)據(jù)框
 
5.將數(shù)據(jù)寫入totalold.csv和keywords.csv
操作結(jié)果:

知識點小結(jié):
通過數(shù)據(jù)清洗,提取關(guān)鍵詞生成新變量的過程,可以生成規(guī)整清洗的新的數(shù)據(jù)表格,方便之后的描述和推斷。


知識點5:
知識點名稱:描述性分析

知識點所屬工作角色:
描述性分析

知識點背景:
描述性分析的目標主要在于描述數(shù)據(jù)集的大致變化趨勢和相關(guān)關(guān)系

知識點描述
描述性分析

知識點關(guān)鍵詞:
描述性分析 ggplot2

知識點所用軟件:
Rstudio

操作目的:
通過描述性分析分析銷量的分布情況以及各銷量對票房的影響

知識點素材(包括數(shù)據(jù)):
totalold.csv
keywords.csv
total.csv

操作步驟:
1.讀取數(shù)據(jù)
 
2.提取銷量和價格,查看銷量分布,去除不關(guān)心的小于100銷量的產(chǎn)品,對銷量重新分區(qū),ggplot2繪圖觀察

可見月銷量在100至150件之間的連衣裙占比34.8%,分布明顯右偏,月銷量高于250的商品數(shù)量分布相對比較平均

3.將價格這一連續(xù)變量離散化,使用ggplot2制圖

4.繪制年齡和對數(shù)銷售量的條件箱線圖

其中:箱體寬度代表不同年齡層的商品數(shù)量比較;25-29周歲年齡群對應(yīng)的商品數(shù)量居多(57.8%),高銷量商品也較多;青少年及老年消費者對應(yīng)的商品數(shù)量較少,但是平均銷量高,值得關(guān)注;各個年齡層之間的銷售量沒有明顯差異。

5.觀察是否顯瘦和銷量分別在全年齡段和25-29年齡段上的關(guān)系,分別做兩個條件箱線圖,并且放在一張圖上

 

可見:“顯瘦”特質(zhì)在整體上對銷量有一定的促進作用;25-29周歲年齡群的女性“顯瘦”特質(zhì)的促進作用較為顯著

6.觀察是否新款和銷量分別在全年齡段、25-29年齡段上以及35-39年齡段上的關(guān)系,分別做三個條件箱線圖,并且放在一張圖上

其中,“新款”特質(zhì)在整體上對銷量有一定的促進作用,25-29周歲年齡群的女性更加偏好該特質(zhì),35-39周歲年齡群的女性對該特質(zhì)無感甚至有輕微的負面反應(yīng)。
?
7.觀察是否中長款和銷量分別在全年齡段、18-24年齡段上以及40-49年齡段上的關(guān)系,分別做三個條件箱線圖,并且放在一張圖上

可見,“中長款”特質(zhì)對銷量的促進作用相較之前明顯更好些,18-24周歲的青年人群中尤為受歡迎,40-49周歲年齡群的女性對該特質(zhì)仍有一定的好感但是特質(zhì)影響明顯小些

8.觀察是否韓版和銷量分別在全年齡段、18-24年齡段上以及35-39年齡段上的關(guān)系,分別做三個條件箱線圖,并且放在一張圖上

可見,“韓版”特質(zhì)對銷量有明顯的正向影響,35-39周歲年齡群的女性尤為暢銷,18-24周歲年齡群的女性對該特質(zhì)無感。

9.通過上面對商品屬性的特定特征描述性分析,可以得到如下幾個小結(jié):
i.月銷量100-200筆的商品數(shù)量較多,且隨著商品單價的上升有下降趨勢
ii.各年齡層的平均銷量差異并不明顯,25-29周歲年齡層消費的商品數(shù)量較多
iii.從商品名稱中提取關(guān)鍵標簽,發(fā)現(xiàn)“顯瘦”、“新款”、“中長款”、“韓版”特質(zhì)整體對銷量都有不同程度的積極作用。并且不同年齡層對銷量的影響不同

10.讀取原始數(shù)據(jù)total.csv,使用正則表達式提取地點(市)的關(guān)鍵詞,并且只保留商家較多的市

11.構(gòu)建地點和銷量數(shù)據(jù)集,并且通過中位數(shù)調(diào)整地點數(shù)據(jù),排序

12.繪制地點銷量圖

其中,武漢的商品是最少的(0.88%),但是商品平均銷量最高;杭州商品數(shù)量最多(24.4%)且平均銷量較高,優(yōu)勢較明顯;廣州、深圳,尤其是上海商品數(shù)量較多但是平均銷量卻一般
?
13.觀察開店時間對銷量的影響,先提取數(shù)據(jù),在生成新的年份向量,最后制圖

14.觀察物流、服務(wù)、描述評分與銷量的箱線圖,去除缺失值,將評分因子化,合并4.6以下的評分

可見,店鋪各項評分均較大程度的集中在4.7或4.8;評分4.7的店鋪平均銷量最高;店鋪評分低于4.7的商品數(shù)量較少且月銷量較低

操作結(jié)果:
見操作步驟中每一部分的輸出圖形
小結(jié):
1.武漢、東莞等少數(shù)城市雖然商品數(shù)量較少但是商品銷量卻居全國前列
2.杭州商品數(shù)量最多(24.4%)且平均銷量較高,屬于熱點城市
3.店鋪成立時間對銷量不會產(chǎn)生明顯的影響
4.高銷量連衣裙所屬的店鋪評分集中在4.7和4.8,其中4.7的店鋪平均銷量最高,評分4.7以下的店鋪商品銷量較少(很難達到100以上),很難入選該數(shù)據(jù)集

知識點小結(jié):
通過數(shù)據(jù)描述性分析過程可以很直觀的得到一些基本的結(jié)論,這些結(jié)論能夠很好的幫助我們發(fā)現(xiàn)數(shù)據(jù)之間的內(nèi)在關(guān)系

知識點6:
知識點名稱:用多元線性回歸進行推斷和預(yù)測分析
知識點所屬工作角色:
多元回歸分析
知識點背景:
1.使用多元線性回歸進行推斷和預(yù)測分析
2.得到系數(shù)并且進行初步的觀察和解釋
3.加入交互項改善模型擬合度

知識點描述
多元線性回歸 交互項

知識點關(guān)鍵詞:

知識點所用軟件:
Rstudio

操作目的:
1.使用多元線性回歸進行推斷和預(yù)測分析
2.得到系數(shù)并且進行初步的觀察和解釋
3.加入交互項改善模型擬合度

知識點素材(包括數(shù)據(jù)):
totalold.csv

操作步驟:
1.讀取數(shù)據(jù),生成用于建模的新數(shù)據(jù)表格

用于分析的數(shù)據(jù)說明如下

2.回歸分析

結(jié)果分析:
R-squared: 0.05463,Adjusted R-squared: 0.05353??梢婎A(yù)測性很差。參考價值僅在于相關(guān)性不在于預(yù)測性。

模型總結(jié)(顯著性水平選擇0.05):
1.價格對銷量有負面影響,符合預(yù)期。由于價格和銷量均經(jīng)過取對數(shù)處理,則對應(yīng)的回歸系數(shù)體現(xiàn)了銷量對價格的彈性,即價格增長1%,連衣裙月銷量相應(yīng)的減少約0.234%
2.“韓版”、“新款”、“顯瘦”、“中長款”均對銷量有正面影響,其中“中長款”、“顯瘦”對銷量影響較為明顯,“中長款”特質(zhì)能有效提高約銷量月12.4%;“顯瘦”特質(zhì)提高11.6%。對應(yīng)回歸系數(shù)體現(xiàn)銷量的增長率
3.年齡和“是否新款”對銷量的影響并不是很顯著
4.基于描述性分析的判斷,考慮加入年齡和各項標簽的交互項
5.加入交互項后,變量描述如下
 
進行回歸分析如下

結(jié)果分析:
R-squared: 0.05791,Adjusted R-squared: 0.0560??梢姅M合優(yōu)度并沒有增加多少。參考價值僅在于相關(guān)性不在于預(yù)測性。

模型總結(jié)(顯著性水平選擇0.05):
1.價格對月銷量的影響與未交交互項時基本一致
2.年齡、“新款”對銷量無影響
3.“顯瘦”、“中長款”對銷量的正面影響依舊顯著,且相較之前系數(shù)變大即影響作用增強?!帮@瘦”會根據(jù)年齡層不同對銷量產(chǎn)生不同影響,隨著年齡的增加,“顯瘦”對銷量的影響作用減弱。
4.“中長款”隨著年齡的變化對銷量無影響
5.“韓版”在加入交互項后對銷量產(chǎn)生負面影響,但是隨著年齡的的增長對銷量的影響作用增強

綜上得到的結(jié)論
1.對商品標簽進行詞云分析能夠提取對銷量有顯著影響的因素:顯瘦、韓版、新款、中長款?;貧w分析近一步將其效應(yīng)化

2.以上商品屬性對銷量的影響均會隨適用年齡層的變化而變化,通常25-29周歲和35-39周歲年齡層對其最為敏感,具體量化指標由回歸分析中的交互項系數(shù)體現(xiàn)

3.商品所在店鋪信息對商品銷量亦有預(yù)測作用:并非店鋪評分越高商品銷量越高,高銷量易集中在中檔評分;同時可觀察到店鋪所在地與商品銷量的相關(guān)性,可進一步考察典型城市

操作結(jié)果:
見操作步驟中的總結(jié)部分

知識點小結(jié):
多元回歸分析只是眾多有監(jiān)督預(yù)測方式的一種,由于存在線性假設(shè),而線性假設(shè)在現(xiàn)實中并不常見,所以這里加入了交互項,而效果一遍,需要進一步通過殘差分析,當擬合優(yōu)度較差的時候預(yù)測性就會變得很差,只能說明相關(guān)性,不適于預(yù)測。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }