选题-文献学习-理论构造-数据管理-数据分析-论文写作-投稿发表
我该用什么数据
我从哪些找数据
我怎么去熟悉数据
我如何清洗数据
我怎样发掘数据的根本规律
1.时间:跨期,尽可能新
2.地点:有全国代表性
3.群体:至少包含劳动年龄人口
4.变量:劳动收入、教育程度、常见人口学变量
1.理想的数据采集和管理需要大量人力、物力、财力
2.优先寻找既有数据
3.实在找不到,再自己采集
想研究家庭消费的最新决定因素,需要怎样的数据?
选题:因变量-家庭消费
文献学习
理论架构(公式)
包含消费、收入、消费品价格度量、与偏好相关的家庭变量的家庭层面的最新数据
官方宏观数据库:国家统计局
商业数据库
联合国、世界银行、国际货币基金组织
Penn World Table
综合类微观数据库:CGSS(中国人民大学)
CFPS(北京大学)–追踪调查 全国成人及儿童 2010-2018
人口老龄化微观数据库:CHARLS 2011-2015 中老年人
人口流动微观数据库:CMDS 2009-2019
教育类微观数据库:CEPS 13/14 14/15(追访)初一初三
健康类微观数据库:CHNS 中国cdc+北卡大学 89-2015 社区、家庭、个人健康营养信息
收支财富类微观数据库 CHFS 11-15 中国家庭的收支和财富类信息
收支财富类微观数据库:CHIP 88-2013(国家统计局)
主管类微观数据库:WVS 各类主管问题 91-2014
cgss获取过程
注册-数据-搜索-下载(stata主要、spss)中英文问卷
1.数据采集的过程
2.定义及统计口径:可比性
3.调查问卷
整体信息
抽样设计
数据清洗、变量处理、指标代码等
权重信息(代表性)
问卷设计整体信息
以受访者身份回答一遍问卷
不同逻辑跳转均需回答一遍
实时体会受访者心境
因变量、关键自变量及其他变量
为后续数据合并、清洗和描述做好准备:减负、增效
1.在问卷中找到所需变量对应的问题:多度量
在数据中找到相应题号的变量名称
注意事项:变量调整思路、变量信息增补
1.前期阅读思考:了解数据大概样貌
2.浏览众多数据库:锁定及获取目标数据
3.研读技术文档和问卷:熟悉目标数据
4.整理关键变量信息:为后续数据处理打基础
Statistics+Data
官网www.stata.com
界面及模块
数据载入
菜单操作
帮助体系及自学方法
clear
set more off
use “E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级.dta”
import excel “E:\BaiduNetdiskDownload\GDP增长率.xlsx”, sheet(“Sheet1”) firstrow
twoway (bar gdpgr year, fcolor(gs7))
twoway (bar gdpgr year, fcolor(gs7))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if yeat<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal)) xtitle(年份) xlabel(2010(1)2020) legend(off)
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal)) xtitle(年份) xlabel(2010(1)2020) legend(off)
将所需变量从数据库中提取出来
不同群体在同一组变量下的数据合并(2010,2015 不同群体,相同的属性调查)
携带不同变量信息的同一群体的整合(统一年份中,不同的数据,家庭,个人,性别)
提取-合并=清洗
* 数据提取的整个过程
clear
set more off
use "E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级.dta"
keep classid assignm /* 保留数据中两个字段名称*/
* drop teacher 一样的意义,删除了哪些变量,推荐使用keep、知晓使用了哪些变量
save "E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级_修正.dta", replace
/* 有数据就覆盖*/
use "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级2.dta",clear
rename 绩点 gpa
append using "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级1.dta" "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级3.dta"
save "E:\stata\datas\学分成绩点_所有班级.dta", replace
识别观测值的变量或变量组合
横截面数据、时间序列数据、面板数据
ID需具有唯一识别性
检验参与横向合并数据的ID唯一识别性
观测值的简单重复:删除多余观测值
不同个体错误分享同一ID:删去所有相关观测值
isid id
//代码块部分(接着13th.do文件)
* 去除简单重复值
duplicates drop
// isid id
*删除错误共享id的所有观测值,tag 给属性打标签,用ddd表示变量)
duplicates tag id,generate(ddd)
tab ddd
* 列表出ddd>0的数据
list if ddd>0
drop if ddd>0
isid id
1对1合并
多对一合并
一对多合并
多对多合并?
样本取舍
1.判断横向合并类型:1对1,1对多,多对1
2.检验“1”那一方的ID唯一识别性,并做相应处理
3.执行合并,并根据情况处理未匹配样本
数据概貌-找到数据-熟悉数据-整理和提取关键变量-数据整合-数据清洗-数据描述
1.阅览整体样貌-2.完善变量名及标签-3单变量清洗-4多变量清洗-5变量调整(可能整合,是否汉族,增加变量等等)-6样本筛选和存储-7整理清洗文档
* 4.数据清洗
* 阅读数据整体样貌
codebook
可以是中文或英文
完整单词的缩写,可以回溯到完整单词
stata:rename
变量本身的标签:变量含义
变量取值的标签:变量取值含义
stata:label系列命令
des 变量名称都打出来
rename yob biryr 改变名称
help label 查看label 的一系列命令
//给变量名称biryr打标签 出生年份
label variable bthyr "出生年份
//先定义一个标签class 并定义值,再将值扔
label define class 1 "经济学班" 2 "管理学班" 3 "金融学班"
label values classid class
tab classid 查看
tab classid,nolabel //没有标签查看
阅览单个变量取值分布:codebook,tab,sum
处理所有单变量错误值
处理所有变量缺失值
处理所有单变量值的极端值
情况一:本身无措,但不能直接用于分析
情况二:本身有错,且知道如何修改
情况三:本身有错,但不知道如何修改
注意区分错误值与极端值
判断是否本来就应该缺失
对于本不应该缺失的,尽量填补缺失值
填补缺失值:确定性关系;相似性关系
无法填补的,记录缺失比重,分析未缺失样本代表性
在处理完错误值和缺失值之后进行
原则:不改动极端值,生成子样本标识符
根据不同子样本,检查分析结果的稳健性
阅览单个变量取值分布之前。。。
//先打开一个数据
help destring
destring , replace string类型但是是long类型 转换所有数字类型的变量
destring v2,replace ignore(",")
destring v3,replace force//(强制运行)
destring v3,generate(v3_temp) force //(string类型-数字型转换过来以及转换不过来变为缺失值)
list v3 if v3_temp == . 缺失值//发现数值录入的时候有空格
destring v3,replace ignore(" ")//一定要复制过来 //转变过来了
drop v3_temp//删除临时变量
* 4.数据清洗
* 阅读数据整体样貌
codebook
* 完善变量名称及标签
/* des 看变量名称*/
//修改yob 变为bthyr 意思更直观出生日期
rename yob bthyr
//给变量名称biryr打标签 出生年份
label variable bthyr "出生年份"
label variable height "身高(厘米)"
//先定义一个标签class 并定义值,再将值扔
label define class 1 "经济学班" 2 "管理学班" 3 "金融学班"
label values classid class
*单变量清洗:处理错误值
replace bthyr = . if bthyr <1900
replace height =height*100 if height<3
replace gpa=. if gpa>4
*单变量清洗:处理缺失值
*确定性关系
replace year =2015 if year ==.
replace age=year-bthyr if age==.
replace bthyr=year-age if bthyr==.
* 近似插值 适用于随机缺失的,由内生决定机制的变量
*确定是否是随机缺失的一般方法:生成是否缺失的二元0-1变量,拿它对研究对象特征进行回归,看自变量系数是否统计
*参数方法:GPA=a=b+年龄+c*性别+d+班级+______.将参数关系套用再GPA缺失的个体身上
*非参数方法:利用年龄、性别、班级——分组计算GPA的统计指标,再做填补
save "E:\BaiduNetdiskDownload\虚构数据\虚构数据\临时数据.dta", replace
collapse gpa,by(age gender classid)
drop if classid==.|gender==""|age==.
rename gpa avggpa
merge 1:m classid gender age using "E:\BaiduNetdiskDownload\虚构数据\虚构数据\临时数据.dta"
gen missgpa=(gpa==.)
replace gpa =avggpa if gpa ==.
drop _merge avggpa
每个变量都正确,不意味着整个数据没问题
变量之间的联合分布是否正确?
变量之间的联合分布是否正确
变量之间的数量关系是否正确
某些变量之间的联合分布需要满足既定规律
跳转关系带来的分布规律:是否有工具和工资额度
某些变量之间的数值需要满足既定关系
变量之间的等式关系:总收入与收支各分项
变量之间的不等式关系:老大的年龄与老二的年龄
遍历每种变量组合,思考其中是否存在必然联系
检查特定分布或数量关系是否成立
如不成立:其他信息辅助判读;主观判断;同时处理
由此带来的新缺失值可以进行填补处理
变量清洗干净后,不见得是后续分析需要的形态
既有变量取值转换:分类调整、尺度转换
新变量的生成
变量筛选、样本筛选
选择样本筛选的合适方式
为什么此时进行数据筛选?
stata:drop
切莫覆盖原始数据
注意存储版本
数据清洗:文档整理及论文展示
系统性展示数据清洗的逻辑、过程及结果的文档
便于自己再检查数据清洗流程
便于合作者或指导老师了解数据清洗全程
便于后续论文写作
做了什么
为什么做
样本变动:改动、删除等操作设计的样本量
样本整体统计:样本量、删除率、改动率、缺失率
论文:数据部分=数据介绍+数据清理介绍+数据描述
正文:数据结构改变+关键变量调整+重要样本筛选+结果
附录:数据清洗详细步骤;可复制性
多学习、总结文献的做法
misstable sum
. misstable sum
Obs<.
+------------------------------
| | Unique
Variable | Obs=. Obs>. Obs<. | values Min Max
-------------+--------------------------------+------------------------------
age | 2 998 | 5 18 22
bthyr | 2 998 | 5 1993 1997
height | 1 999 | 34 152 187
male | 1 999 | 2 0 1
-----------------------------------------------------------------------------
/*
教育回报随时间变迁研究
数据清洗程序
*/
clear
set more off
cd "E:\stata\datas" //当前数据路径
* 1.提取关键变量
* 提取2005 年关键变量
use cgss2005.dta,clear //载入2005年数据
keep qb12b qb03b qa2_01 qa3_01 qa4_01 qs2a qs2c weight05 //保留关键变量
gen year=2005 //生成调差年份变量 ///表示命令还没完,注意间距加个空格
* 统一名称
ren (qb12b qb03b qa2_01 qa3_01 qa4_01 qs2a qs2c weight05) ///
(totinc educ gender bthyr ethn prov region wgt)
save cgss2005_ss.dta,replace
use cgss2010_14.dta ,clear
keep a8a a8b a7a a7b a2 a3a a4 s41 s5 WEIGHT
gen year = 2010
ren (a8a a8b a7a a7b a2 a3a a4 s41 s5 WEIGHT) ///
(totinc wrkinc educ grad gender bthyr ethn prov region wgt)
save cgss2010_ss.dta,replace
use "cgss2015_14.dta",clear
keep a8a a8b a7a a7b a2 a301 a4 s41 s1 weight //保留关键变量
gen year = 2015
ren (a8a a8b a7a a7b a2 a301 a4 s41 s1 weight) ///
(totinc wrkinc educ grad gender bthyr ethn prov region wgt)
save cgss2015_ss.dta,replace
* 数据的纵向合并
append using cgss2005_ss.dta cgss2010_ss.dta
****3数据清洗******
* 阅读整体样貌
codebook
*完善变量标签
label var region "城乡"
label var prov "省份"
label var gender "性别"
label var bthyr "出生年份"
label var ethn "民族"
label var educ "最高教育程度"
label var grad "教学状态"
label var totinc "去年个人总收入"
label var year "调查年份"
*lab list s1lab 查看标签s1lab
* tab region ,nolabel
* 完善变量值标签
lab val prov qs2a
* 单变量清洗
replace bthyr =. if bthyr<0 //将取负值的出生年份替换成缺失值
replace ethn =. if ethn<0 //将负值的民族替换成缺失值
replace educ = . if (educ <0 | educ ==23 ) & year==2005 //将2005年教育中的负值或其它替换为缺失值
replace educ =. if(educ <0 | educ ==14 ) & (year==2010 | year ==2015) //将2010或者2015年教育中的负值或其它替换为缺失值
replace grad = . if grad<0 //将2010年或2015年就学状态中的负值替换成缺失值
replace totinc = . if totinc >=9999996 | totinc <0 //将总收入当中的原缺失值和负值替换成缺失值
replace wrkinc = . if totinc >=9999996 | totinc <0 //将职业入当中的原缺失值和负值替换成缺失值
系统展示系统后数据的描述性统计指标
承上:检验数据是否可靠
启下:系统展示数据初始形态和规律
启下:发掘新的研究话题
图+表
第一步:明确数据描述的内容是什么
第二步:根据变量形态和研究需要设计图标样式
第三步:用软件去实现图表的绘制
当数据描述旨在推断总体特征时,使用权重信息
取值分布:展示未加权和加权结果
统计指标:展示加权结果
参考文献:what are we weighting for
表示某条观测值在数据中重复的次数,只能为正整数
表示某条数据来自多少条原始观测值,可等比例调整大小 10个人平均成绩80.5 按照比例
表示某条数据被抽中概率的倒数
自行判断哪种重要
help weight
因变量取值分布:频数分布
取值分布:频率分布
集中趋势指标:均值、中位数
离散趋势指标:方差、标准差、极值…
因变量取值分布:分布图
取值分布:分布表,每行一值,连续vs离散
统计指标:表格,每列一个指标,集中+离散
因变量随时间变化趋势图:原始时间尺度
趋势图:整合后的时间尺度
趋势图:图上标注重要统计指标
因变量:所有时间点的分布图叠加
取值分布:每表一指标,每行一值,每列一个时间点
统计指标:每表一指标,每列一个时间点
* 教育回报随时间变迁研究
* 数据描述程序
** 因变量数据描述
** 因变量取值分布描述
tab totinc_grp year if sample, col //未加权的取值分布(频数+频率)
tab totinc_grp year if sample [aw=wgt] ,col //加权的取值分布(频数)
/* tabstat mean range */
tabstat totinc if sample [aw=wgt] ,s(mean median sd range) by (year) //加权的统计指标
///分布图命令
twoway kdensity totinc if sample & year == 2005 || ///
kdensity totinc if sample & year == 2010 || ///
kdensity totinc if sample & year == 2015, ///
legend(lab(1 "2005") lab(2 "2010") lab(3 "2015") col(3))
//加权
twoway kdensity totinc if sample & year == 2005 || ///
kdensity totinc if sample & year == 2010 || ///
kdensity totinc if sample & year == 2015, ///
legend(lab(1 "2005") lab(2 "2010") lab(3 "2015") col(3))
hepl putexcel
findit putexcel
//tab 命令出来的数据,我们可以直接复制到excel中
调整一些范围及原因
//两者调换了位置 先清洗在进行生成新样本
**多变量清洗
recode totinc wrkinc (nonm=.) if totinc < wrkinc & wrkinc !=.
//定义样本:总收入不超过一百万的样本
gen sample = (totinc <= 1000000) if totinc != . //总收入效于100w的话,sample=1
label var sample "总收入不超过一百万的样本标识"
//考虑更正
//对总收入进行分组(便于后续描述)
gen totinc_grp = min(int(totinc/4000),4) if totinc !=. //对收入不为空的情况进行判别 缺失值大于任何数
lab define incgrp 0 "<4000" 1 "4000-8000" 2 "8000-12000" 3 "12000-16000" 4 ">16000"
lab val totinc_grp incgrp
因变量与关键字变量联合取值分布:频数分布
取值分布:频率分布
因变量集中趋势指标随关键字变量的变化:均值、中位数。。。
离散趋势指标随关键字变量的变化:方差、标准差、极值、、、、、
联合取值分布:每个时间点一幅散点图,可叠加
取值分布:每表一个时间点一个指标,每行一自变量值,每列一因变量值
统计指标:每表一指标,每行一自变量值,每列一个时间点
统计指标:可画图
因变量与关键自变量的关联如歌随第三方变量变化
异质性是经验研究的精髓之一
因变量与第三方变量联合取值分布:频数分布
取值分布:频率分布
因变量集中趋势指标随关键字变量的变化:均值、中位数。。。
离散趋势指标随关键字变量的变化:方差、标准差、极值、、、、、
联合取值分布:每表一个时间点一个指标,每行一个自变量值,每列一个第三方变量值
取值分布:每表一个时间点一个指标,每行一自变量值,每列一因变量值
统计指标:每表一指标,每行一自变量值,每列一个第三方变量取值,表中填因变量统计指标
首先需要检查结果是否有异常
从冰山到冰山一角
同等条件下,图胜于表
同一内容,可正文用途,附录放表
图标的一般要求:标题、附注、“自我解释”
图标的各自要求:图—标识、视觉效果;表—结构层次、小数
流程图:参考第一讲
数据清洗的流程 :参考第一讲
数据描述的流程:因变量描述、关键自变量描述、其他自变量描述、因变量自变量关联
关联的异质性、解读修正、整合图表
谋定后动,耐心细心
顺序很重要
一定要编程
做好文档工作
另开新程序进行数据分析
随时调整清洗内容,逐一对照描述结果
论文中数据管理内容的写作
整理好所有文档备用
选题-文献学习-理论构造-数据管理-数据分析-论文写作-投稿发表
我该用什么数据
我从哪些找数据
我怎么去熟悉数据
我如何清洗数据
我怎样发掘数据的根本规律
1.时间:跨期,尽可能新
2.地点:有全国代表性
3.群体:至少包含劳动年龄人口
4.变量:劳动收入、教育程度、常见人口学变量
1.理想的数据采集和管理需要大量人力、物力、财力
2.优先寻找既有数据
3.实在找不到,再自己采集
想研究家庭消费的最新决定因素,需要怎样的数据?
选题:因变量-家庭消费
文献学习
理论架构(公式)
包含消费、收入、消费品价格度量、与偏好相关的家庭变量的家庭层面的最新数据
官方宏观数据库:国家统计局
商业数据库
联合国、世界银行、国际货币基金组织
Penn World Table
综合类微观数据库:CGSS(中国人民大学)
CFPS(北京大学)–追踪调查 全国成人及儿童 2010-2018
人口老龄化微观数据库:CHARLS 2011-2015 中老年人
人口流动微观数据库:CMDS 2009-2019
教育类微观数据库:CEPS 13/14 14/15(追访)初一初三
健康类微观数据库:CHNS 中国cdc+北卡大学 89-2015 社区、家庭、个人健康营养信息
收支财富类微观数据库 CHFS 11-15 中国家庭的收支和财富类信息
收支财富类微观数据库:CHIP 88-2013(国家统计局)
主管类微观数据库:WVS 各类主管问题 91-2014
cgss获取过程
注册-数据-搜索-下载(stata主要、spss)中英文问卷
1.数据采集的过程
2.定义及统计口径:可比性
3.调查问卷
整体信息
抽样设计
数据清洗、变量处理、指标代码等
权重信息(代表性)
问卷设计整体信息
以受访者身份回答一遍问卷
不同逻辑跳转均需回答一遍
实时体会受访者心境
因变量、关键自变量及其他变量
为后续数据合并、清洗和描述做好准备:减负、增效
1.在问卷中找到所需变量对应的问题:多度量
在数据中找到相应题号的变量名称
注意事项:变量调整思路、变量信息增补
1.前期阅读思考:了解数据大概样貌
2.浏览众多数据库:锁定及获取目标数据
3.研读技术文档和问卷:熟悉目标数据
4.整理关键变量信息:为后续数据处理打基础
Statistics+Data
官网www.stata.com
界面及模块
数据载入
菜单操作
帮助体系及自学方法
clear
set more off
use “E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级.dta”
import excel “E:\BaiduNetdiskDownload\GDP增长率.xlsx”, sheet(“Sheet1”) firstrow
twoway (bar gdpgr year, fcolor(gs7))
twoway (bar gdpgr year, fcolor(gs7))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if yeat<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal))
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal)) xtitle(年份) xlabel(2010(1)2020) legend(off)
twoway (bar gdpgr year, fcolor(gs7) barwidth(0.6)) (line gdpgr year if year<=2019, lcolor(black)) (line gdpgr year if year>=2019, lpattern(dash)), ytitle(GDP增长率(%)) ylabel(5(0.5)11, angle(horizontal)) xtitle(年份) xlabel(2010(1)2020) legend(off)
将所需变量从数据库中提取出来
不同群体在同一组变量下的数据合并(2010,2015 不同群体,相同的属性调查)
携带不同变量信息的同一群体的整合(统一年份中,不同的数据,家庭,个人,性别)
提取-合并=清洗
* 数据提取的整个过程
clear
set more off
use "E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级.dta"
keep classid assignm /* 保留数据中两个字段名称*/
* drop teacher 一样的意义,删除了哪些变量,推荐使用keep、知晓使用了哪些变量
save "E:\BaiduNetdiskDownload\虚构数据\虚构数据\课程基本信息_所有班级_修正.dta", replace
/* 有数据就覆盖*/
use "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级2.dta",clear
rename 绩点 gpa
append using "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级1.dta" "E:\BaiduNetdiskDownload\虚构数据\虚构数据\学分绩点_班级3.dta"
save "E:\stata\datas\学分成绩点_所有班级.dta", replace
识别观测值的变量或变量组合
横截面数据、时间序列数据、面板数据
ID需具有唯一识别性
检验参与横向合并数据的ID唯一识别性
观测值的简单重复:删除多余观测值
不同个体错误分享同一ID:删去所有相关观测值
isid id
//代码块部分(接着13th.do文件)
* 去除简单重复值
duplicates drop
// isid id
*删除错误共享id的所有观测值,tag 给属性打标签,用ddd表示变量)
duplicates tag id,generate(ddd)
tab ddd
* 列表出ddd>0的数据
list if ddd>0
drop if ddd>0
isid id
1对1合并
多对一合并
一对多合并
多对多合并?
样本取舍
1.判断横向合并类型:1对1,1对多,多对1
2.检验“1”那一方的ID唯一识别性,并做相应处理
3.执行合并,并根据情况处理未匹配样本
数据概貌-找到数据-熟悉数据-整理和提取关键变量-数据整合-数据清洗-数据描述
1.阅览整体样貌-2.完善变量名及标签-3单变量清洗-4多变量清洗-5变量调整(可能整合,是否汉族,增加变量等等)-6样本筛选和存储-7整理清洗文档
* 4.数据清洗
* 阅读数据整体样貌
codebook
可以是中文或英文
完整单词的缩写,可以回溯到完整单词
stata:rename
变量本身的标签:变量含义
变量取值的标签:变量取值含义
stata:label系列命令
des 变量名称都打出来
rename yob biryr 改变名称
help label 查看label 的一系列命令
//给变量名称biryr打标签 出生年份
label variable bthyr "出生年份
//先定义一个标签class 并定义值,再将值扔
label define class 1 "经济学班" 2 "管理学班" 3 "金融学班"
label values classid class
tab classid 查看
tab classid,nolabel //没有标签查看
阅览单个变量取值分布:codebook,tab,sum
处理所有单变量错误值
处理所有变量缺失值
处理所有单变量值的极端值
情况一:本身无措,但不能直接用于分析
情况二:本身有错,且知道如何修改
情况三:本身有错,但不知道如何修改
注意区分错误值与极端值
判断是否本来就应该缺失
对于本不应该缺失的,尽量填补缺失值
填补缺失值:确定性关系;相似性关系
无法填补的,记录缺失比重,分析未缺失样本代表性
在处理完错误值和缺失值之后进行
原则:不改动极端值,生成子样本标识符
根据不同子样本,检查分析结果的稳健性
阅览单个变量取值分布之前。。。
//先打开一个数据
help destring
destring , replace string类型但是是long类型 转换所有数字类型的变量
destring v2,replace ignore(",")
destring v3,replace force//(强制运行)
destring v3,generate(v3_temp) force //(string类型-数字型转换过来以及转换不过来变为缺失值)
list v3 if v3_temp == . 缺失值//发现数值录入的时候有空格
destring v3,replace ignore(" ")//一定要复制过来 //转变过来了
drop v3_temp//删除临时变量
* 4.数据清洗
* 阅读数据整体样貌
codebook
* 完善变量名称及标签
/* des 看变量名称*/
//修改yob 变为bthyr 意思更直观出生日期
rename yob bthyr
//给变量名称biryr打标签 出生年份
label variable bthyr "出生年份"
label variable height "身高(厘米)"
//先定义一个标签class 并定义值,再将值扔
label define class 1 "经济学班" 2 "管理学班" 3 "金融学班"
label values classid class
*单变量清洗:处理错误值
replace bthyr = . if bthyr <1900
replace height =height*100 if height<3
replace gpa=. if gpa>4
*单变量清洗:处理缺失值
*确定性关系
replace year =2015 if year ==.
replace age=year-bthyr if age==.
replace bthyr=year-age if bthyr==.
* 近似插值 适用于随机缺失的,由内生决定机制的变量
*确定是否是随机缺失的一般方法:生成是否缺失的二元0-1变量,拿它对研究对象特征进行回归,看自变量系数是否统计
*参数方法:GPA=a=b+年龄+c*性别+d+班级+______.将参数关系套用再GPA缺失的个体身上
*非参数方法:利用年龄、性别、班级——分组计算GPA的统计指标,再做填补
save "E:\BaiduNetdiskDownload\虚构数据\虚构数据\临时数据.dta", replace
collapse gpa,by(age gender classid)
drop if classid==.|gender==""|age==.
rename gpa avggpa
merge 1:m classid gender age using "E:\BaiduNetdiskDownload\虚构数据\虚构数据\临时数据.dta"
gen missgpa=(gpa==.)
replace gpa =avggpa if gpa ==.
drop _merge avggpa
每个变量都正确,不意味着整个数据没问题
变量之间的联合分布是否正确?
变量之间的联合分布是否正确
变量之间的数量关系是否正确
某些变量之间的联合分布需要满足既定规律
跳转关系带来的分布规律:是否有工具和工资额度
某些变量之间的数值需要满足既定关系
变量之间的等式关系:总收入与收支各分项
变量之间的不等式关系:老大的年龄与老二的年龄
遍历每种变量组合,思考其中是否存在必然联系
检查特定分布或数量关系是否成立
如不成立:其他信息辅助判读;主观判断;同时处理
由此带来的新缺失值可以进行填补处理
变量清洗干净后,不见得是后续分析需要的形态
既有变量取值转换:分类调整、尺度转换
新变量的生成
变量筛选、样本筛选
选择样本筛选的合适方式
为什么此时进行数据筛选?
stata:drop
切莫覆盖原始数据
注意存储版本
数据清洗:文档整理及论文展示
系统性展示数据清洗的逻辑、过程及结果的文档
便于自己再检查数据清洗流程
便于合作者或指导老师了解数据清洗全程
便于后续论文写作
做了什么
为什么做
样本变动:改动、删除等操作设计的样本量
样本整体统计:样本量、删除率、改动率、缺失率
论文:数据部分=数据介绍+数据清理介绍+数据描述
正文:数据结构改变+关键变量调整+重要样本筛选+结果
附录:数据清洗详细步骤;可复制性
多学习、总结文献的做法
misstable sum
. misstable sum
Obs<.
+------------------------------
| | Unique
Variable | Obs=. Obs>. Obs<. | values Min Max
-------------+--------------------------------+------------------------------
age | 2 998 | 5 18 22
bthyr | 2 998 | 5 1993 1997
height | 1 999 | 34 152 187
male | 1 999 | 2 0 1
-----------------------------------------------------------------------------
/*
教育回报随时间变迁研究
数据清洗程序
*/
clear
set more off
cd "E:\stata\datas" //当前数据路径
* 1.提取关键变量
* 提取2005 年关键变量
use cgss2005.dta,clear //载入2005年数据
keep qb12b qb03b qa2_01 qa3_01 qa4_01 qs2a qs2c weight05 //保留关键变量
gen year=2005 //生成调差年份变量 ///表示命令还没完,注意间距加个空格
* 统一名称
ren (qb12b qb03b qa2_01 qa3_01 qa4_01 qs2a qs2c weight05) ///
(totinc educ gender bthyr ethn prov region wgt)
save cgss2005_ss.dta,replace
use cgss2010_14.dta ,clear
keep a8a a8b a7a a7b a2 a3a a4 s41 s5 WEIGHT
gen year = 2010
ren (a8a a8b a7a a7b a2 a3a a4 s41 s5 WEIGHT) ///
(totinc wrkinc educ grad gender bthyr ethn prov region wgt)
save cgss2010_ss.dta,replace
use "cgss2015_14.dta",clear
keep a8a a8b a7a a7b a2 a301 a4 s41 s1 weight //保留关键变量
gen year = 2015
ren (a8a a8b a7a a7b a2 a301 a4 s41 s1 weight) ///
(totinc wrkinc educ grad gender bthyr ethn prov region wgt)
save cgss2015_ss.dta,replace
* 数据的纵向合并
append using cgss2005_ss.dta cgss2010_ss.dta
****3数据清洗******
* 阅读整体样貌
codebook
*完善变量标签
label var region "城乡"
label var prov "省份"
label var gender "性别"
label var bthyr "出生年份"
label var ethn "民族"
label var educ "最高教育程度"
label var grad "教学状态"
label var totinc "去年个人总收入"
label var year "调查年份"
*lab list s1lab 查看标签s1lab
* tab region ,nolabel
* 完善变量值标签
lab val prov qs2a
* 单变量清洗
replace bthyr =. if bthyr<0 //将取负值的出生年份替换成缺失值
replace ethn =. if ethn<0 //将负值的民族替换成缺失值
replace educ = . if (educ <0 | educ ==23 ) & year==2005 //将2005年教育中的负值或其它替换为缺失值
replace educ =. if(educ <0 | educ ==14 ) & (year==2010 | year ==2015) //将2010或者2015年教育中的负值或其它替换为缺失值
replace grad = . if grad<0 //将2010年或2015年就学状态中的负值替换成缺失值
replace totinc = . if totinc >=9999996 | totinc <0 //将总收入当中的原缺失值和负值替换成缺失值
replace wrkinc = . if totinc >=9999996 | totinc <0 //将职业入当中的原缺失值和负值替换成缺失值
系统展示系统后数据的描述性统计指标
承上:检验数据是否可靠
启下:系统展示数据初始形态和规律
启下:发掘新的研究话题
图+表
第一步:明确数据描述的内容是什么
第二步:根据变量形态和研究需要设计图标样式
第三步:用软件去实现图表的绘制
当数据描述旨在推断总体特征时,使用权重信息
取值分布:展示未加权和加权结果
统计指标:展示加权结果
参考文献:what are we weighting for
表示某条观测值在数据中重复的次数,只能为正整数
表示某条数据来自多少条原始观测值,可等比例调整大小 10个人平均成绩80.5 按照比例
表示某条数据被抽中概率的倒数
自行判断哪种重要
help weight
因变量取值分布:频数分布
取值分布:频率分布
集中趋势指标:均值、中位数
离散趋势指标:方差、标准差、极值…
因变量取值分布:分布图
取值分布:分布表,每行一值,连续vs离散
统计指标:表格,每列一个指标,集中+离散
因变量随时间变化趋势图:原始时间尺度
趋势图:整合后的时间尺度
趋势图:图上标注重要统计指标
因变量:所有时间点的分布图叠加
取值分布:每表一指标,每行一值,每列一个时间点
统计指标:每表一指标,每列一个时间点
* 教育回报随时间变迁研究
* 数据描述程序
** 因变量数据描述
** 因变量取值分布描述
tab totinc_grp year if sample, col //未加权的取值分布(频数+频率)
tab totinc_grp year if sample [aw=wgt] ,col //加权的取值分布(频数)
/* tabstat mean range */
tabstat totinc if sample [aw=wgt] ,s(mean median sd range) by (year) //加权的统计指标
///分布图命令
twoway kdensity totinc if sample & year == 2005 || ///
kdensity totinc if sample & year == 2010 || ///
kdensity totinc if sample & year == 2015, ///
legend(lab(1 "2005") lab(2 "2010") lab(3 "2015") col(3))
//加权
twoway kdensity totinc if sample & year == 2005 || ///
kdensity totinc if sample & year == 2010 || ///
kdensity totinc if sample & year == 2015, ///
legend(lab(1 "2005") lab(2 "2010") lab(3 "2015") col(3))
hepl putexcel
findit putexcel
//tab 命令出来的数据,我们可以直接复制到excel中
调整一些范围及原因
//两者调换了位置 先清洗在进行生成新样本
**多变量清洗
recode totinc wrkinc (nonm=.) if totinc < wrkinc & wrkinc !=.
//定义样本:总收入不超过一百万的样本
gen sample = (totinc <= 1000000) if totinc != . //总收入效于100w的话,sample=1
label var sample "总收入不超过一百万的样本标识"
//考虑更正
//对总收入进行分组(便于后续描述)
gen totinc_grp = min(int(totinc/4000),4) if totinc !=. //对收入不为空的情况进行判别 缺失值大于任何数
lab define incgrp 0 "<4000" 1 "4000-8000" 2 "8000-12000" 3 "12000-16000" 4 ">16000"
lab val totinc_grp incgrp
因变量与关键字变量联合取值分布:频数分布
取值分布:频率分布
因变量集中趋势指标随关键字变量的变化:均值、中位数。。。
离散趋势指标随关键字变量的变化:方差、标准差、极值、、、、、
联合取值分布:每个时间点一幅散点图,可叠加
取值分布:每表一个时间点一个指标,每行一自变量值,每列一因变量值
统计指标:每表一指标,每行一自变量值,每列一个时间点
统计指标:可画图
因变量与关键自变量的关联如歌随第三方变量变化
异质性是经验研究的精髓之一
因变量与第三方变量联合取值分布:频数分布
取值分布:频率分布
因变量集中趋势指标随关键字变量的变化:均值、中位数。。。
离散趋势指标随关键字变量的变化:方差、标准差、极值、、、、、
联合取值分布:每表一个时间点一个指标,每行一个自变量值,每列一个第三方变量值
取值分布:每表一个时间点一个指标,每行一自变量值,每列一因变量值
统计指标:每表一指标,每行一自变量值,每列一个第三方变量取值,表中填因变量统计指标
首先需要检查结果是否有异常
从冰山到冰山一角
同等条件下,图胜于表
同一内容,可正文用途,附录放表
图标的一般要求:标题、附注、“自我解释”
图标的各自要求:图—标识、视觉效果;表—结构层次、小数
流程图:参考第一讲
数据清洗的流程 :参考第一讲
数据描述的流程:因变量描述、关键自变量描述、其他自变量描述、因变量自变量关联
关联的异质性、解读修正、整合图表
谋定后动,耐心细心
顺序很重要
一定要编程
做好文档工作
另开新程序进行数据分析
随时调整清洗内容,逐一对照描述结果
论文中数据管理内容的写作
整理好所有文档备用