天天看點

案例 | 如何做商品資訊資料分析和展現?

商品價格和人們生活息息相關,比如農産品價格波動不僅會對農民收入和農民生産積極性産生直接影響,更關乎百姓的日常生活和切身利益。經常看新聞看到農民辛苦了一個季度的農作物全都爛在地裡,因為價格太低廉,或者沒有銷路。雖然說物價波動是一種正常的經濟現象,但是在一定程度上物價穩,人心才穩,社會才穩。為保持經濟平穩健康發展、保障群衆生活,穩定物價,資訊公開顯得尤為重要。價格監測和預測是維持物價穩定的一個重要環節。而對于商品價格、産量、以及銷路、銷量等資料公開,建立産品價格分析、監測、預測平台可以為相關政府管理部門提供生産調控、決策分析的依據,成為農門種植的依據,避免盲目種植。國家也有譬如南菜北運、西果東送等等政策但是資料實時公開,友好的向全國人民展示我認為還有很大的提升空間。

實作過程:

針對從價格資訊網抓取來的資料利用eclipse工作平台開發出了商品資訊資料分析及展現系統,實作了價格展示、價格分析、價格預測、居民消費指數分析、商品流通情況以及作物主要産地及産量的展示。價格分析包括價格走勢、價格對比(市場之間對比)、價格展示(各省對比)。價格預測最後采用基于時間序列的神經網絡算法做了初步短期價格預測。居民消費指數CPI作為反映消費者支付商品和勞務的價格變化情況,也是一種度量通貨膨脹水準的工具,主要包括同比環比及其漲跌情況、CPI構成比例以及各省月度CPI展示等。

分析結果以帶有時間軸的折線圖、柱狀圖、地圖熱力圖、餅狀圖形式展示,界面美觀,和使用者互動性強,簡單易懂。

案例 | 如何做商品資訊資料分析和展現?

資料擷取

資料來源:

濰坊物價資訊網 http://www.wfwj.gov.cn/

中華人民共和國國家統計局 http://www.stats.gov.cn/

擷取方式:

針對資料來源網站資訊大多有規律的更新,但網頁資料結構保持不變,使用的方式有兩種:

1.使用Excel工具抓取

1)通過Excel從網頁導入資料,選中自己要導入的資料。

2)建立宏,重複上步操作

3)觀察資料釋出的網頁位址規律,修改宏代碼

(使用該方法的好處是可用Excel對擷取來的資料進行資料處理)

2.使用RCurl爬蟲

(友善對抓回來的資料用R直接對資料進行相關分析計算)

資料處理:

因為各種原因,價格資訊網提供的商品價格資訊有資料機關不統一、商品名稱不規範、市場名稱前後不一、缺失值等等問題。經過對這些資料的分析和總結,對資料進行了統一商品名稱格式、規範市場名稱、規範資料機關、去重和缺失值5方面的處理。

存儲方式:

将處理好的資料,建好表結構存儲到mysql資料庫中。

資料展現

展現方式:使用Echarts在網頁顯示。

展現内容:

1. 價格分析

案例 | 如何做商品資訊資料分析和展現?

① 價格走勢:

這裡主要展示的是将爬取來的每日商品價格資料按商品類型取平均值(右側圖例選擇要檢視的商品類型),做曲線圖。通過下面時間軸拖動、拉長檢視某一範圍内的價格走勢;也可通過區域縮放按鈕檢視某一段曲線的詳細走勢。

② 價格對比:

針對從濰坊物價資訊網擷取來的資料,根據價格采集地點進行價格對比。大體分為兩類:超市價格和集市價格。以柱狀圖的方式可直覺的看出某天某種商品在不同地點的價格高低情況。如要檢視2014-08-01的價格對比情況。

效果展示如下:

滑鼠移動切換标簽展示集市商品價格對比。

③ 全國商品價格

在地圖上,以熱力圖的形式展現全國各省某種商品價格的高低。滑鼠懸停顯示具體價格資訊。

案例 | 如何做商品資訊資料分析和展現?

此外,可以具體到某省下的各市價格展示:

繼續往下深入,具體到某市下各區、鎮價格展示(以濰坊市為例):

2.居民消費指數

CPI (Consumer price index) 居民消費指數,反應通貨膨脹或者緊縮的程度,一般來講,物價全面的持續的上漲就會被認為發生的通貨膨脹。

① 同比環比(資料來自濰坊物價資訊網)

可選擇檢視整體CPI漲跌情況,或者影響CPI八大類中某一類CPI漲跌情況。

如選擇食品類,還可繼續檢視食品類下的具體漲跌情況

效果展示如下:下方為時間軸,可以選擇相關年份檢視

案例 | 如何做商品資訊資料分析和展現?

② CPI比例

用餅狀圖的方式可直覺展現八大類及其分類對整體CPI的構成影響。下方為時間軸,展現不同時間段的構成比例。

案例 | 如何做商品資訊資料分析和展現?

③ 各省月度CPI(下方為時間軸,可以選擇年月份檢視)

3.商品流通情況

國家有南菜北運、西果東送的政策,友好的相關資訊展示,為合理配置設定資源開辟市場提供相關決策依據。

效果展示如下:

案例 | 如何做商品資訊資料分析和展現?

4.各農作物主要産地

滑鼠懸停顯示産地産量資訊。

效果展示如下:

案例 | 如何做商品資訊資料分析和展現?

5.價格預測

主要包含兩部分:1 .價格預警 2.商品價格預測

價格預警:采用Ajax技術每隔一小時自動重新整理屬于,紅色為預警辨別。

計算上一周價格移動平均值,和目前價格做差,漲跌絕對值大于0.5紅色箭頭辨別預警。

效果展示如下:

案例 | 如何做商品資訊資料分析和展現?

商品價格預測(以大白菜價格為例):

虛線為預測價格,實線為實際價格

案例 | 如何做商品資訊資料分析和展現?

資料預測

預測工具:rapidminer

資料來源:濰坊物價資訊網

實作算法:基于時間序列神經網絡的短期價格預測

實作過程:

(以大白菜價格為例)

訓練集:選取2013-2014内大白菜的價格。

測試集:抽取1/3作為測試集。

預測模型:方案有兩種一是采用支援向量機SVM,二是采用神經網絡,下面對兩種模型進行評估。

指數平滑和移動平均

模型如下:

首先使用支援向量機進行移動平均和指數平滑的計算(這裡視窗大小設為5,alpha設為0.8)

案例 | 如何做商品資訊資料分析和展現?

部分結果如下:

折線圖如下:

案例 | 如何做商品資訊資料分析和展現?

可以看出移動平均線和本期實際價格有一定誤差,而指數平滑出來的價格exponential_smoothing(本期價格)和本期價格基本重合,而趨勢線(trend藍線)效果不是很好。

再使用神經網絡進行移動平均和指數平滑的計算(參數設定如上)

案例 | 如何做商品資訊資料分析和展現?

部分結果如下:

案例 | 如何做商品資訊資料分析和展現?

折線圖如下:

可以看出時間序列幾何平均法(average)和本期價格誤差不大,而指數平滑exponential_smoothing基本和本期價格一緻。趨勢線基本符合價格漲跌情況,在14年4月出現了大幅度上升,這樣就能發現價格異常的産品,進而對其價格預警。

為了評估模型預測的精度,加入時間序列包中Validation 操作符,并設定好相關參數。

Validation 操作符内部需要放置某種算法,這裡采用支援向量機 SVM:

預測精度:

案例 | 如何做商品資訊資料分析和展現?

下面再采用神經網絡Neural Net 比較一下預測精度:

案例 | 如何做商品資訊資料分析和展現?

預測精度:

案例 | 如何做商品資訊資料分析和展現?

可以看出采用神經網絡預測精度高一些,是以下面采用神經網絡算法進行模型訓練及預測。

這裡視窗大小設為5

案例 | 如何做商品資訊資料分析和展現?

模型如下:

預測結果如下:

紅色線為實際價格 ,藍色線為預測價格。

從圖中可以看出,預測價格基本還行。

案例 | 如何做商品資訊資料分析和展現?

不足與展望:

因為時間和能力有限,作品本身還有很大的提升空間。比如資料抓取和處理沒有實作完全自動化。資料預測因素單一,需要收集更多的資料來進一步産品價格預測精度,及時發現價格異常的農産品。商品價格波動的主導因素很複雜,像供需關系、生産成本、自然條件、科技發展、運輸存儲、國家政策、自然災害等都是造成價格波動的主導因素。這也為提高商品價格預測的精度帶來了很多困難。如何有效、準确的預測商品價格還需要繼續學習和研究。

自己對物價這方面的研究很有興趣,因為它和人們的生活息息相關,一方面對農民收入和農民積極性産生直接影響,另一方面又關乎我們每一個人的日常生活和切身利益。物價過高,漲速過快,就會造成百姓生活壓力過大、心裡不安影響人們的幸福度。是以,促公開,推進資訊價格透明化是一項很有意義的工作。穩定高效的商品智能分析系統可以增強相關部門決策的科學性、針對性和及時性,希望自己能夠通過進一步的努力更加完善。