实现过程:
针对从价格信息网抓取来的数据利用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
模型如下:
预测结果如下:
红色线为实际价格 ,蓝色线为预测价格。
从图中可以看出,预测价格基本还行。
不足与展望:
因为时间和能力有限,作品本身还有很大的提升空间。比如数据抓取和处理没有实现完全自动化。数据预测因素单一,需要收集更多的数据来进一步产品价格预测精度,及时发现价格异常的农产品。商品价格波动的主导因素很复杂,像供需关系、生产成本、自然条件、科技发展、运输存储、国家政策、自然灾害等都是造成价格波动的主导因素。这也为提高商品价格预测的精度带来了很多困难。如何有效、准确的预测商品价格还需要继续学习和研究。
自己对物价这方面的研究很有兴趣,因为它和人们的生活息息相关,一方面对农民收入和农民积极性产生直接影响,另一方面又关乎我们每一个人的日常生活和切身利益。物价过高,涨速过快,就会造成百姓生活压力过大、心里不安影响人们的幸福度。所以,促公开,推进信息价格透明化是一项很有意义的工作。稳定高效的商品智能分析系统可以增强相关部门决策的科学性、针对性和及时性,希望自己能够通过进一步的努力更加完善。