随着人类社会活动的深度互联网化、数字化,几乎所有的经济活动都会留下“数字记载”,此时构建实时化高频化的宏观经济指标已经具备条件且意义重大。作为反映通货膨胀的重要指标CPI,目前各国主要是通过定时定点调查实体店的商品和服务价格变化得到,一般每月发布一次。中国电子商务发展迅速,线上覆盖的居民生活消费的商品和服务越来越广泛,这为构建实时高频的物价指数提供了丰富的数据源。另一方面不断发展的大数据算法和计算速度,也为编制高频CPI提供了新的工具和方法。编制CPI物价指数的一个基本假设是不同时期的产品“同质可比”,但消费者“产品篮子”更新换代越来越快,现实中“同质可比”的前提假设受到巨大冲击与挑战,所以CPI统计需要进行相应质量变化调整处理。
尝试构建质量调整后的价格指数,并对其进行相应分析
1. 作业需要提交一份代码加一份报告
2. 编程环境统一使用Python3.x版本,文件夹目录可以如下
data/ —— 存放数据文件
pre_process.py/ —— 数据预处理
run.py —— 指数构建、分析等
3. 报告需至少包含三部分,1) 方法 methodology ;2)模型结果;3)结论
4. 报告以PDF形式提交。
由于淘宝数据库较大,我主要提供了两种方式给同学们使用数据,具体情况如下。
- 链接: https://pan.baidu.com/s/1GjaDfah0vczKgx9A3KosfA
- 密码: n3iu
- 淘宝商品价格表,表命名格式为 price_日期.csv,如 price_20170414.csv,目前云盘上有2017年4月1号到2017年4月26号之间的数据。
- 淘宝商品评论表,表命名格式为 buy_数字.csv,如 buy_10.csv,目前云盘上有buy_1到buy_10的数据。
- 淘宝商品价格表和淘宝商品评论表均只包含了部分类别且进行抽样过的数据(选取了100个商品类别,包含唇膏、零食等)。
- 【注意】淘宝商品评论表爬取规则不是每天爬取一定量的评论,而是爬取一定数量的评论后就停止爬取了,所以慎用商品评论数量的时间序列信息。
- 如果需要更多的淘宝商品价格与评论数据请联系助教。
- 淘宝商品价格表
字段名称 | 描述 | 补充说明 |
---|---|---|
item_id | 商品ID | |
raw_price_low | 原始价格(最低价) | |
raw_price_high | 原始价格(最高价) | |
raw_price_avg | 原始价格(均价) | |
raw_price_low | 促销价格(均价) | 如果为零,说明没有促销;如果不为零,则为促销价格 |
promo_price_wavg | 分型号等权平均价格 | 如果为零,说明没有促销;如果不为零,则为促销价格 |
category | 商品所属种类 | 该字段不需要继续通过斜杠分割 |
- 淘宝商品评论表
字段名称 | 描述 | 补充说明 |
---|---|---|
rate_id | 评论ID | |
item_id | 商品ID | |
type | 评论类型 | |
rate_score | 打分 | -1 是差评,0是中评,1是好评,-2是未知 |
comment_date | 评论日期 | |
buy_cent | \ | |
buy_price | 购买价格 | |
buy_amount | 购买数量 | |
currency | 支付使用货币类型 | 如CNY代表使用人民币支付 |
content | 评论内容 | |
content_append | 评论追加内容 | |
content_dayafter | 评论追加天数 | |
seller_reply | 卖家回复内容 | |
anony | 是否匿名 | 1代表是,0代表否 |
photo_count | 评论中包含图片数量 | |
category | 商品所属类别 |
- 数据可能需要一定的清洗。
- 尽管进行了抽样,但是数据还是比较大,避免一次性读取所有表到内存中。
host = '***.***.***.***' # 有需要的同学可以向助教同学询问host
user = 'root'
passwd = ''
port = 3306
charset = 'utf8'
db = 'taobao' # db = 'buy' / db = 'item_cat'
import pymysql
conn = pymysql.connect(host=host, user=user, passwd=passwd, db=db, port=port, charset=charset)
cursor = conn.cursor()
sql = "select * from taobao_item_price_daily_20170401 limit 100"
cursor.execute(sql)
cursor.fetchall()
- taobao:包含了淘宝商品每天的价格(2017.02.08~2018.10.30)
- buy:包含了淘宝商品的评论信息
- item_cat:包含了商品id和类别id的信息
具体字段含义见ppt。
- 数据量比较大,大家可以选择特定的时期进行分析(比如618前后两周)
- 同时在线的mysql实例不要太多,否则会影响服务器性能
- 读取表可以批量读取